【问题标题】:With express-jwt, can I return a different status code other than 401?使用 express-jwt,我可以返回 401 以外的其他状态码吗?
【发布时间】:2018-10-19 23:05:42
【问题描述】:

我正在使用 express-jwt。我想在失败时发回不同的状态码。我实际上设置了 2 个不同的 express-jwt 中间件,一个需要凭据,另一个可以选择解码令牌(如果存在)。对于后者,如果令牌存在但过期,我想返回不同的状态代码,因为在 401 上,我的应用程序会自动将用户重定向到登录页面,我不希望在可选身份验证时发生这种情况。

这是我的 express-jwt 设置:

const jwt = require('express-jwt');

exports.decodeAuthIfExist = jwt({
  secret: jwksRsa.expressJwtSecret({
    cache: true,
    rateLimit: true,
    jwksRequestsPerMinute: 5,
    jwksUri: `https://${process.env.AUTH0_DOMAIN}/.well-known/jwks.json`
  }),
  credentialsRequired: false,
  audience: process.env.AUTH0_AUDIENCE,
  issuer: `https://${process.env.AUTH0_DOMAIN}/`,
  algorithms: ['RS256']
});

这就是我使用它的方式:

app.get('/resource',
    auth.decodeAuthIfExist,
    resource.get);

我需要修改什么才能返回例如 402 的状态码。

【问题讨论】:

    标签: node.js express jwt express-jwt


    【解决方案1】:

    express-jwt 将引发 UnauthorizedError 错误。它根本不设置状态。

    您在某处定义了错误中间件来处理异常。

    【讨论】:

    猜你喜欢
    • 2020-08-28
    • 1970-01-01
    • 2021-08-19
    • 2020-12-11
    • 1970-01-01
    • 2010-09-07
    • 2013-08-14
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多