json web token - 到期时间不清楚

时间:2016-01-11 14:54:54

标签: node.js jwt express-jwt

我在节点js中使用jsonwebtoken包。我正在生成这样的令牌:

var token = jwt.sign({ email: email }, secret, { expiresIn: 144000 });

生成令牌,但是当我查看Chrome的Cookie控制台时," Expires / Max-Age"列是"会话",而不是24小时,正如我所料。我也尝试将expiresIn设置为' 1d',但结果是一样的。

感谢。

1 个答案:

答案 0 :(得分:0)

服务器计算token后,必须将其发送给客户端。然后,客户端有责任将令牌作为每个后续HTTP请求的Authorization HTTP头的参数发送。换句话说,客户端负责为每个单个HTTP请求将应用程序状态传递给Web服务器。

客户端如何存储此类信息不是Web服务器的顾虑,只关心其自身资源的状态。两种常见的策略是本地存储,还有cookie。

由于令牌是自包含的,因此服务器不需要存储客户端状态。也就是说,不需要服务器端会话,从而使相应的会话cookie设置与令牌的行为无关。事实上,服务器只需要解码请求中HTTP Authorization标头中提供的令牌,并检查exp日期。如果报告的时间戳大于当前时间戳,则令牌已过期,服务器应拒绝进一步处理该请求。

观察到这两个方面(即,客户端需要处理应用程序状态以及随后在服务器中缺少此类数据)允许根据REST无状态约束实现客户端/服务器交互。