JWT fehlt Ich bin mit Express-jwt Middleware zu schaffen, jwtCheckMiddleware
:Express-jwt: ablehnen schnell wesentliche Eigenschaft
function getTokenFromRequest(req) {
...
throw Boom.badRequest("JWT missing")
}
async function isNotRevokedCallback(req, payload, done) {
...
}
const jwtCheckMiddleware = expressJwt({
secret: ....,
credentialsRequired: true,
isRevoked: isNotRevokedCallback,
getToken: getTokenFromRequest
})
An einem Punkt in der Entwicklung gaben die JWTs fehlte eine JTI Eigenschaft. Neu ausgestellte Tokens enthalten die JTI-Eigenschaft.
Eine Anfrage ohne JWT wird schnell abgelehnt; getTokenFromRequest
gibt einen Fehler aus. Das funktioniert großartig.
Eine Anfrage mit einer alten JWT - ohne JTI - nur mal aus.
Es gibt einen Null-Check innerhalb isNotRevokedCallback
auf der JTI; Ich erhalte einen Fehler, wenn die JTI nicht definiert ist. Könnte es sein, dass der expressJwt
Middleware-Konstruktor diesen Fehler nicht richtig abfängt, was zu einem Timeout führt?
isNotRevokedCallback
basiert lose auf https://github.com/auth0/express-jwt#revoked-tokens
Danke! Der "beendete" Rückruf war der kritische Punkt. Der Erfolgsfall ist 'done (null, false)' und der Fehlerfall ist 'done (Boom.wrap (err))' 'für einen Fehler, der in' isNotRevokedCallback' abgefangen wurde. –