Я установил JwtStrategy для аутентификации моих конечных точек API. И, как вы можете видеть, я выдаю пользовательскую ошибку JWTExpired
, если jwtPayload.expires > Date.now()
, если вы укажете ошибку в блоке catch, это произойдет, тогда код снова выдаст ту же ошибку и завершит работу приложения. Я использовал ту же структуру с LocalStrategy
, чтобы выдать ошибку PasswordNotMatch
, и она работает там довольно хорошо.
passport.use(
new JWTStrategy(
{
jwtFromRequest: req => {
return req.cookies.jwt;
},
secretOrKey: secret
},
(jwtPayload, done) => {
try {
if (jwtPayload.expires > Date.now()) {
return done(null, jwtPayload);
} else {
throw new JWTExpired();
}
} catch (error) {
console.log(error);
return done(error);
}
}
)
);