如何使用节点 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)
  }
});