我正在创建一个基于MEAN的Web应用程序,我有以下问题:
将令牌(JWT)过期更好?现在我正在做的是创建一个没有过期的令牌,在客户端,我创建了一个带有该令牌的cookie,并且10分钟到期。
在那个cookie中,我在每个请求中添加10分钟。如果用户在10分钟内处于非活动状态,则该cookie将过期,并且请求将在没有令牌的情况下生成。
答案 0 :(得分:1)
在Chrome中:
F12➡️应用程序选项卡➡️Cookies➡️将令牌复制并粘贴到像Postman这样的REST客户端
哎呀,我刚刚为你的API获得了永久的令牌!
换句话说,正如您所怀疑的那样,这不是一种好的做事方式。到期应该在令牌的有效负载中 - 这样,您可以验证没有人更改它,因为它将使用您的服务器机密值进行签名。
Node JWT库实际上是has this functionality built-in:
jwt.sign({
// 1 hour expiration
exp: Math.floor(Date.now() / 1000) + (60 * 60),
data: 'foobar'
}, 'secret');
这并不是说你不能/不应该 使用你的令牌使用cookie过期,但仅依靠它是不安全的。