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

问题描述 投票:2回答:6

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

var token = jwt.sign(user,app.get('superSecret'),{
    expiresIn : 2
});
node.js express
6个回答
10
投票

我假设您使用的是documented here的jsonwebtoken包>

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

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

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


9
投票
var isExpiredToken = false;

var dateNow = new Date();

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

{
       isExpiredToken = true;
}

7
投票
var isExpiredToken = false;

var dateNow = new Date();

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

{
       isExpiredToken = true;
}

0
投票
var isExpiredToken = false;
var seconds = 1000;
var d = new Date();
var t= d.getTime();


if (decoded.exp < Math.round(t / seconds)) {
  // code...
  isExpiredToken = true;
}

0
投票

您需要设置主机当前时间以比较验证功能示例中的到期日期:


0
投票

最好的方法是在页面或包装的父组件中设置代码。您需要删除旧的(扩展的)令牌。

© www.soinside.com 2019 - 2024. All rights reserved.