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 がない) を使用したリクエストは、タイムアウトになります。
isNotRevokedCallback
JTI の内部には null チェックがあります。JTI が未定義の場合、エラーをスローします。expressJwt
ミドルウェア コンストラクターがこのエラーを適切にキャッチしておらず、タイムアウトが発生している可能性がありますか?
isNotRevokedCallback
大まかにhttps://github.com/auth0/express-jwt#revoked-tokensに基づいています