Node.js - Express.js JWT,如何检查令牌是否过期?

Kar*_*hik 2 node.js express

如何检查我的令牌是否已过期?

var token = jwt.sign(user,app.get('superSecret'),{
    expiresIn : 2
});
Run Code Online (Sandbox Code Playgroud)

And*_*ing 10

我假设您使用的是此处记录的jsonwebtoken包

如果是这种情况,请查看jwt.verify方法:

jwt.verify(token, 'shhhhh', function(err, decoded) {
  if (err) {
    /*
      err = {
        name: 'TokenExpiredError',
        message: 'jwt expired',
        expiredAt: 1408621000
      }
    */
  }
});
Run Code Online (Sandbox Code Playgroud)

简而言之:检查该方法的错误.如果是TokenExpiredError,那么猜猜...令牌已过期.


lak*_*yap 8

var isExpiredToken = false;

var dateNow = new Date();

if(decodedToken.exp < dateNow.getTime()/1000)

{
       isExpiredToken = true;
}
Run Code Online (Sandbox Code Playgroud)


小智 7

var isExpiredToken = false;

var dateNow = new Date();

if(decodedToken.exp < dateNow.getTime())

{
       isExpiredToken = true;
}
Run Code Online (Sandbox Code Playgroud)

  • 那是错误的。`dateNow.getTime()` 返回毫秒,而 `decodedToken.exp` 则以秒为单位 (2认同)