Javascript检查令牌中的日期是否已经过期

时间:2018-10-23 06:43:37

标签: javascript date jwt

美好的一天

我在身份验证中使用jwt。我已经解码了令牌,但是问题是,我想检查令牌exp是否已经过期。

var decodedToken = localStorage.getItem('user_token');

console.log(decodedToken.exp) // writes 1540360205

谢谢。

4 个答案:

答案 0 :(得分:1)

我假设decodedToken.exp的值是令牌到期日期的UNIX时间戳,因此您可以执行以下操作:

...
var date = new Date();
// date.getTime() is in milliseconds and thus we've got to divide by 1000
if(decodedToken.exp<date.getTime()/1000){
    console.log('The token has expired');
}else{
    console.log('The token is still valid');
}

答案 1 :(得分:1)

您的JWT令牌的exp声明似乎带有UNIX时间戳,以秒为单位。要检查给定的JWT是否过期,您可以将其与UNIX时间戳作为当前日期进行比较:

var decodedToken = localStorage.getItem('user_token');
if (decodedToken.exp < new Date().getTime()/1000) {
    console.log("EXPIRED");
}

答案 2 :(得分:1)

您可以按如下方式使用Date.now()进行比较

     decodedToken.exp * 1000 < Date.now()

PS:我将exp * 1000乘以毫秒为单位。

答案 3 :(得分:1)

这应该为您获取当地时间,然后可以将其与当前日期和时间进行比较,并检查令牌是否已过期

var tokenDate = new Date(parseInt(localstorage.getItem('user_token')) * 1000)