handle "TokenExpiredError: jwt expired" Error
See original GitHub issueconst checkToken = (req, res, next)=>{
let token = req.headers['x-access-token'] || req.headers['authorization'];
if(token && token.startsWith('Bearer ')){
token = token.slice(7, token.length)
}
if(token){
try{
let decoded = jwt.verify(token, secret);
req.decoded = decoded;
User.findOne({email:decoded.email})
.populate('following')
.exec((err, user)=>{
if(err) throw err;
if(user){
req.user = user;
next();
}
});
}catch(err){
res.status(403).send({
success:false,
message:err
})
}
}else{
return res.status(403).json({
success:false,
message:'Unauthorized'
})
}
};
If Token is Expired. Getting this error:
{ TokenExpiredError: jwt expired at /Users/pradeepkumar/Desktop/bitbucket/volupn-api/node_modules/jsonwebtoken/verify.js:152:21 at getSecret (/Users/pradeepkumar/Desktop/bitbucket/volupn-api/node_modules/jsonwebtoken/verify.js:90:14) at Object.module.exports [as verify] (/Users/pradeepkumar/Desktop/bitbucket/volupn-api/node_modules/jsonwebtoken/verify.js:94:10) at Socket.socket.on (/Users/pradeepkumar/Desktop/bitbucket/volupn-api/sockets/base.js:10:17) at Socket.emit (events.js:182:13) at Socket.EventEmitter.emit (domain.js:441:20) at /Users/pradeepkumar/Desktop/bitbucket/volupn-api/node_modules/socket.io/lib/socket.js:528:12 at process._tickCallback (internal/process/next_tick.js:61:11) name: 'TokenExpiredError', message: 'jwt expired', expiredAt: 2019-04-14T13:12:19.000Z }
Issue Analytics
- State:
- Created 4 years ago
- Comments:9 (2 by maintainers)
I’m using
err.name
, but he just returns “Error”是否是到了设置的过期时间以后进行解密,就会进入异常处理,我需要再时间过期以后拿到存入的信息,但是现在进入了异常。怎么解决呢?