我在节点 js 中使用 jsonwebtoken 包。我正在生成一个像这样的令牌:
var token = jwt.sign({ email: email }, secret, { expiresIn: 144000 });
生成了令牌,但是当我查看 Chrome 的 cookie 控制台时,“Expires / Max-Age”列的值是“Session”,而不是像我预期的那样从现在开始 24 小时。我也尝试将 expiresIn 设置为 '1d',但结果是一样的。
谢谢。
我在节点 js 中使用 jsonwebtoken 包。我正在生成一个像这样的令牌:
var token = jwt.sign({ email: email }, secret, { expiresIn: 144000 });
生成了令牌,但是当我查看 Chrome 的 cookie 控制台时,“Expires / Max-Age”列的值是“Session”,而不是像我预期的那样从现在开始 24 小时。我也尝试将 expiresIn 设置为 '1d',但结果是一样的。
谢谢。
一旦服务器计算出token
,它必须将它发送给客户端。然后,客户端负责将令牌作为Authorization
每个后续 HTTP 请求的 HTTP 标头的参数发送。换句话说,客户端负责将每个单独的 HTTP 请求的应用程序状态传递给 Web 服务器。
客户端将如何存储这些信息是 Web 服务器不关心的,它只关心自己资源的状态。两种常见的策略是本地存储和cookie。
由于令牌是自包含的,服务器不需要存储客户端状态。也就是说,不需要服务器端会话,从而使相应的会话 cookie 设置与令牌的行为无关。事实上,服务器只需要解码Authorization
请求中HTTP头中提供的令牌,并检查exp
日期。如果报告的时间戳大于当前时间戳,则令牌已过期,服务器应拒绝进一步处理请求。
请注意,这两个方面(即客户端需要处理应用程序状态以及因此在服务器中缺少此类数据)允许根据 REST 无状态约束实现客户端/服务器交互。