前言:
在node中通过jwt来使用token时,会发现一旦超时后会报错500
报错截图:
解决办法:
源码:
/**
* 校验token是否过期
* */
function verson(req){
var token=req.headers.token;
let con = jwt.verify(token, 'x-token', (err, decoded) => {
if (err) {
console.log(err);
if(err.name == 'TokenExpiredError'){//token过期
let str = {
iat:1,
exp:0,
msg: 'token过期'
}
return str;
}else if(err.name == 'JsonWebTokenError'){//无效的token
let str = {
iat:1,
exp:0,
msg: '无效的token'
}
return str;
}
}else{
return decoded;
}
})
console.log(con);
if(con.iat<con.exp){
return true //开始时间小于结束时间,代表token还有效
}else{
return false
}
}