我使用jsonwebtoken(https://www.npmjs.com/package/jsonwebtoken)并做了两个简单的功能。
一种用于创建/签署具有到期时间的令牌,另一种用于验证令牌。

我使用jwt.sign('userdata', 'abc', {expiresInSeconds: 1});签名令牌。
令牌应该在一秒钟后过期,但是当我使用jwt.verify(token, 'abc', function(err, decoded) { }验证令牌时,var err为空,并且decoded返回userdata

最佳答案

jsonwebtoken库仅允许您签名对象,而不是字符串。 An issue建议对此规范尚不明确,但该库选择仅对对象进行操作。

此代码按预期工作。请注意,我已经用对象替换了字符串。

token = jwt.sign({ data: 'userdata' }, 'abc', {expiresInSeconds: 1});
setTimeout(function() {
  jwt.verify(token, 'abc', function(err, decoded) {
    console.log(err, decoded);
  })
}, 2000);


输出:

{ name: 'TokenExpiredError',
  message: 'jwt expired',
  expiredAt: Sun Apr 19 2015 11:08:36 GMT-0700 (Pacific Daylight Time) }

关于node.js - nodejs-JSONWebToken不会过期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29732453/

10-09 21:21