【发布时间】:2016-04-15 22:24:53
【问题描述】:
我在节点 js 中使用 jsonwebtoken 包。我正在生成这样的令牌:
var token = jwt.sign({ email: email }, secret, { expiresIn: 144000 });
生成了令牌,但是当我查看 Chrome 的 cookie 控制台时,“Expires / Max-Age”列的值是“Session”,而不是像我预期的那样 24 小时后。我也尝试将 expiresIn 设置为 '1d',但结果是一样的。
谢谢。
【问题讨论】:
-
这是一个服务器令牌,与浏览器 cookie 无关
-
但是服务器令牌是如何工作的呢?
-
您是在告诉服务器在这段时间内尊重该令牌。
-
好的,但是服务器在哪里保存过期日期?如果它是服务器令牌,那么我在控制台中看到的令牌 cookie 的作用是什么?请解释机制。谢谢。
-
您可能将从服务器接收到的令牌保存为 cookie。我认为您正在这样做 b/c 您提到在 Chrome 的“cookie 控制台”中查找(而不是在本地存储中)。如果这样做,则有两个过期时间:设置 cookie 时指定的过期时间(在这种情况下,cookie 在用户会话结束时过期),以及 JWT 中包含/编码的过期日期。
标签: node.js jwt express-jwt