Emptyform
@Emptyform

PassportJS :: Как получить текст ошибки, заданный в стратегии, при вызове isAuthenticate()?

Привет!

Использую локальную стратегию passport.js
module.exports = new LocalStrategy(
  {
    usernameField: 'login',
    passwordField: 'password'
  },
  (login, password, done) => {
    User.findOne({ login: login }, (err, user) => {
      if (err) return done(err);

      if (!user || !user.checkPassword(password)) {
        return done(null, false, { message: 'Incorrect username or password' });
      };

      return done(null, user);
    });
  }
);


Как мне получить текст ошибки из message при последующем вызове this.isAuthenticated()?
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
Emptyform
@Emptyform Автор вопроса
Короче вот:

exports.post = function*(next) {
  var self = this;

  yield passport.authenticate('local', function* (err, user, info) {
    if (err) throw err;

    if (user === false) {
      self.status = 401;
      self.body = info.message;
    } else {
      yield self.login(user);
    }

    self.redirect('/');
  });
};


В вопросе конечно про this.isAuthenticated() написано, но смысл был в том как показать клиенту сообщение, если что-то пошло не так.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы