gpt4 book ai didi

php - 为什么身份验证 token 被认为是无状态的,而 session 则不是?

转载 作者:可可西里 更新时间:2023-11-01 12:38:47 25 4
gpt4 key购买 nike

在身份验证 token 的情况下,客户端发送凭据、接收 token 并在所有后续调用中使用它。服务器需要保存 token 以验证请求。

例如,对于 PHP session ,服务器返回客户端在每个请求中发送的 session UID。服务器需要保存 session 。

在这两种情况下,服务器都需要保存状态,那么为什么前者被认为是无状态的呢?

最佳答案

语义。 session 通常通过为每个用户分配一个唯一 ID 并将该 ID 存储在客户端 cookie 中来实现。身份验证 token 将是完全相同的东西 - 某种唯一的每个用户 ID。浏览器会在每次请求时自动发回 Cookie,并且可以在每次请求时发回身份验证 token ,但通常应仅在实际需要身份验证的请求时发送。

区别与这些 token 在服务器上的处理方式有关。 session ID 用于从存储(例如文件、数据库记录等)加载相应的 session ,并且该 session 数据将在请求之间持久保存。

授权 token 没有任何关联的 session 文件。它更像是一种“我被允许来到这里,这就是证据”。

没有理由不能使用 session ID 来实现身份验证系统。即使是一个简单的 $_SESSION['logged_in'] = true 也会将 session 变成一个身份验证系统。

关于php - 为什么身份验证 token 被认为是无状态的,而 session 则不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19840259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com