用Node.js和jsonwebtoken在哪里做JWT到期?

时间:2017-03-29 15:29:02

标签: node.js cookies jwt token

我正在创建一个基于MEAN的Web应用程序,我有以下问题:

将令牌(JWT)过期更好?现在我正在做的是创建一个没有过期的令牌,在客户端,我创建了一个带有该令牌的cookie,并且10分钟到期。

在那个cookie中,我在每个请求中添加10分钟。如果用户在10分钟内处于非活动状态,则该cookie将过期,并且请求将在没有令牌的情况下生成。

1 个答案:

答案 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过期,但仅依靠它是不安全的。