美好的一天
我在身份验证中使用jwt。我已经解码了令牌,但是问题是,我想检查令牌exp
是否已经过期。
var decodedToken = localStorage.getItem('user_token');
console.log(decodedToken.exp) // writes 1540360205
谢谢。
答案 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)