Не удается обработать ошибку, выданную в обратном вызове JWTStrategy - PullRequest
0 голосов
/ 14 января 2019

Я установил 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);
      }
    }
  )
);

1 Ответ

0 голосов
/ 15 января 2019

Я нашел это сам. Я не обрабатывал ошибки маршрутизации, поэтому по истечении срока действия JWT именно passport.js повторно выдавал ошибку, которую я передал с done(error);

...