如何使用节点 js 在基于 jwt 令牌的错误消息中获取状态代码?
How to get status code in jwt token based error msg using nodejs?
我使用 node.js 和 MongoDB 实现了 JWT 令牌身份验证。它工作正常。抛出错误消息也可以正常工作(令牌无效,JWT 已过期,必须提供 JWT)。但是如何在错误消息中自动获取适当的 HTTP 状态代码?
// jwt.js
function Verify_Token(accessToken) {
jwt.verify(accessToken, config.get("jwtprivatekey"), function (err) {
value = err
});
return value
}
jwt.verify 不会 return 出现错误时的任何数字状态代码。根据 jsonwebtoken npm 模块的文档,我们可以清楚地看到它在抛出错误时只是 return 以下字段。
jwt.verify(token, 'shhhhh', function(err, decoded) {
if (err) {
/*
err = {
name: 'TokenExpiredError',
message: 'jwt expired',
expiredAt: 1408621000
}
*/
}
});
如果您必须 return 来自您的 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)
}
});
我使用 node.js 和 MongoDB 实现了 JWT 令牌身份验证。它工作正常。抛出错误消息也可以正常工作(令牌无效,JWT 已过期,必须提供 JWT)。但是如何在错误消息中自动获取适当的 HTTP 状态代码?
// jwt.js
function Verify_Token(accessToken) {
jwt.verify(accessToken, config.get("jwtprivatekey"), function (err) {
value = err
});
return value
}
jwt.verify 不会 return 出现错误时的任何数字状态代码。根据 jsonwebtoken npm 模块的文档,我们可以清楚地看到它在抛出错误时只是 return 以下字段。
jwt.verify(token, 'shhhhh', function(err, decoded) {
if (err) {
/*
err = {
name: 'TokenExpiredError',
message: 'jwt expired',
expiredAt: 1408621000
}
*/
}
});
如果您必须 return 来自您的 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)
}
});