【发布时间】:2017-05-07 13:10:29
【问题描述】:
我正在使用 express-jwt 创建中间件,jwtCheckMiddleware:
function getTokenFromRequest(req) {
...
throw Boom.badRequest("JWT missing")
}
async function isNotRevokedCallback(req, payload, done) {
...
}
const jwtCheckMiddleware = expressJwt({
secret: ....,
credentialsRequired: true,
isRevoked: isNotRevokedCallback,
getToken: getTokenFromRequest
})
在开发过程中,发布的 JWT 缺少 JTI 属性。新发行的代币持有 JTI 财产。
缺少 JWT 的请求会很快被拒绝; getTokenFromRequest 引发错误。这很好用。
带有旧 JWT 的请求(缺少 JTI)只是超时。
在 JTI 上的 isNotRevokedCallback 内部有一个空检查;当 JTI 未定义时,我会抛出一个错误。难道是expressJwt中间件构造函数没有正确捕捉到这个错误,导致超时?
isNotRevokedCallback 松散地基于https://github.com/auth0/express-jwt#revoked-tokens
【问题讨论】:
标签: jwt express-jwt