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

Javascript Check if the Date is already Expired in Token

本问题已经有最佳答案,请猛点这里访问。

美好的一天,

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

1
2
3
var decodedToken = localStorage.getItem('user_token');

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

先感谢您。


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

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


您可以使用Date.now()进行比较,如下所示

1
     decodedToken.exp * 1000 < Date.now()

PS:我已经将exp * 1000乘以ms以获得它。


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

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

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

1
2
3
4
5
6
7
8
...
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');
}