我已经像这样配置了 token :
jwt.sign(
{
user: pick(user, ['_id', 'username'])
},
secret,
{
expiresIn: '2m'
}
);
但是当我想检查 token 是否过期时,这段代码不起作用:
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)/1000 = 1531335468.113
exp = 1531334595
因为我不知道 JWT 使用什么格式的时间...
我该如何解决这个问题?
最佳答案
这就是答案:
if (Date.now() >= exp * 1000) {
return false;
}
关于javascript - 使用此 JWT 库检查 token 是否已过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51292406/