使用此JWT库检查令牌是否过期
我已按如下方式配置了令牌:
jwt.sign(
{
user: pick(user, ['_id', 'username'])
},
secret,
{
expiresIn: '2m'
}
);
但是当我想检查令牌是否过期时,此代码不起作用:
function isAuthenticated() {
const token = localStorage.getItem('token');
const refreshToken = localStorage.getItem('refreshToken');
try {
decode(token);
const { exp } = decode(refreshToken);
if (exp < (new Date().getTime() + 1) / 1000) {
return false;
}
} catch (err) {
return false;
}
return true;
}
问题出在此部分:
if (exp < (new Date().getTime() + 1) / 1000) {
return false;
}
new date().getTime()+1)/1,000=1531335468.113
exp=1531334595
因为我不知道JWT使用什么时间格式.
如何解决此问题?
解决方案
这是答案:
if (Date.now() >= exp * 1000) {
return false;
}
相关文章