Node.js 如何使用nodejs在基于jwt令牌的错误消息中获取状态代码?
我使用node.js和MongoDB实现了JWT令牌身份验证。很好用。抛出错误消息也可以正常工作(令牌无效,JWT过期,必须提供JWT)。但是如何在错误消息中自动获取适当的HTTP状态代码Node.js 如何使用nodejs在基于jwt令牌的错误消息中获取状态代码?,node.js,express-jwt,nodejs-server,Node.js,Express Jwt,Nodejs Server,我使用node.js和MongoDB实现了JWT令牌身份验证。很好用。抛出错误消息也可以正常工作(令牌无效,JWT过期,必须提供JWT)。但是如何在错误消息中自动获取适当的HTTP状态代码 //jwt.js 函数验证令牌(accessToken){ verify(accessToken,config.get(“jwtprivatekey”),函数(err){ 值=错误 }); 返回值 } jwt.verify在出现错误时不会返回任何数字状态代码。根据jsonwebtoken npm模块的文档,我
//jwt.js
函数验证令牌(accessToken){
verify(accessToken,config.get(“jwtprivatekey”),函数(err){
值=错误
});
返回值
}
jwt.verify在出现错误时不会返回任何数字状态代码。根据jsonwebtoken npm模块的文档,我们可以清楚地看到,当它抛出错误时,它只返回以下字段
jwt.verify(token, 'shhhhh', function(err, decoded) {
if (err) {
/*
err = {
name: 'TokenExpiredError',
message: 'jwt expired',
expiredAt: 1408621000
}
*/
}
});
如果必须从nodejs web服务器返回一些状态代码,则必须将状态代码与来自jwt的错误消息一起嵌入http响应中。像下面这样
jwt.verify(token, 'shhhhh', function(err, decoded) {
if (err) {
err = {
name: 'TokenExpiredError',
message: 'jwt expired',
expiredAt: 1408621000
}
return res.status(401).send(err)
}
});
您希望错误状态代码来自何处?我希望错误代码来自API调用,而不是来自jot VerificationSupport如何抛出不同的错误。(令牌无效,JWT过期,必须提供JWT)@smith hari,您可以修改JWT.verify返回的错误对象。