使用 express-jwt,我可以返回 401 以外的其他状态代码吗?



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

这是我的快速 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。

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

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

最新更新