json 网络令牌 - 过期时间不清楚
json web token - expiration time not clear
我在节点 js 中使用 jsonwebtoken 包。我正在生成这样的令牌:
var token = jwt.sign({ email: email }, secret, { expiresIn: 144000 });
令牌已生成,但是当我查看 Chrome 的 cookies 控制台时,"Expires / Max-Age" 列的值是 "Session",而不是我希望的 24 小时后预计。我也尝试将 expiresIn 设置为“1d”,但结果是一样的。
谢谢。
服务器计算出 token
后,必须将其发送给客户端。然后客户端负责为每个后续 HTTP 请求发送令牌作为 Authorization
HTTP header 的参数。换句话说,客户端负责为每个 HTTP 请求将应用程序状态传达给 Web 服务器。
客户端如何存储这些信息是Web服务器不关心的,它只关心自身资源的状态。两种常见的策略是本地存储和 cookie。
由于token是self-contained,服务器端不需要存储客户端状态。也就是说,不需要 server-side session,从而使相应的 session cookie 设置与令牌的行为无关。事实上,服务器只需要解码请求中HTTPAuthorization
header中提供的令牌,并检查exp
日期。如果报告的时间戳大于当前时间戳,则令牌已过期,服务器应拒绝进一步处理请求。
观察这两个方面(即,客户端需要处理应用程序状态以及随之而来的服务器中不存在此类数据)允许根据 REST 实现 client/server 交互无状态约束。
我在节点 js 中使用 jsonwebtoken 包。我正在生成这样的令牌:
var token = jwt.sign({ email: email }, secret, { expiresIn: 144000 });
令牌已生成,但是当我查看 Chrome 的 cookies 控制台时,"Expires / Max-Age" 列的值是 "Session",而不是我希望的 24 小时后预计。我也尝试将 expiresIn 设置为“1d”,但结果是一样的。
谢谢。
服务器计算出 token
后,必须将其发送给客户端。然后客户端负责为每个后续 HTTP 请求发送令牌作为 Authorization
HTTP header 的参数。换句话说,客户端负责为每个 HTTP 请求将应用程序状态传达给 Web 服务器。
客户端如何存储这些信息是Web服务器不关心的,它只关心自身资源的状态。两种常见的策略是本地存储和 cookie。
由于token是self-contained,服务器端不需要存储客户端状态。也就是说,不需要 server-side session,从而使相应的 session cookie 设置与令牌的行为无关。事实上,服务器只需要解码请求中HTTPAuthorization
header中提供的令牌,并检查exp
日期。如果报告的时间戳大于当前时间戳,则令牌已过期,服务器应拒绝进一步处理请求。
观察这两个方面(即,客户端需要处理应用程序状态以及随之而来的服务器中不存在此类数据)允许根据 REST 实现 client/server 交互无状态约束。