флэш-сообщение, возвращающее [объект Object] (Node Express Passport) - PullRequest
0 голосов
/ 27 апреля 2018

Я использую passport.js и хочу вернуть флэш-сообщение, если имя пользователя или пароль не соответствуют настройке. Вся логика настроена, и она работала раньше. Но я как-то сломал функцию, и она все еще не работает, хотя я скопировал рабочую версию 1 на 1. В моем приложении есть настройка флэш-сообщений, которая безупречно работает для всех других флэш-сообщений, не связанных с passport.js.

Но если я попытаюсь войти в систему, мое флэш-сообщение будет пустым, и я получу [object Object] как console.log.

Вопрос 1 : Есть ли способ получить доступ ко всей информации, которую представляет [object Object]?

Вопрос 2 : Есть ли способ в console.log, что мигает перед его отображением? Как мне получить доступ к этой части сессий?

Маршрут:

router.post('/',
    passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login', failureFlash: true }),
  function(req, res) {
    console.log('Login success.');
});

Паспортный код, который отправляет флэш-сообщение для контекста:

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.getUserByUsername(username, function(err, user){
      if (err) throw err;
      if (!user) {
        console.log('A user tried logging in, but username input returned unknown.');
        return done(null, false, {message: 'Unknown user.'});
      }
      User.comparePassword(password, user.password, function(err, isMatch){
        if(err) throw err;
        if(isMatch) {
          return done(null, user);
        } else {
          console.log('A user tried logging in, but password input returned invalid.');
          return done(null, false, {message: 'Invalid password.'});
        }
     });
    });
  }
));

Отображение сообщения с рулем на мой взгляд:

{{#if error_msg}}
  <div class="alert alert-danger">{{error_msg}}</div>
{{/if}}
{{#if error}}
  <div class="alert alert-danger">{{error}}</div>
{{/if}}

(в моей старой ветке, которая работает, возвращается с ошибкой_msg - в моей текущей ветке возвращается просто ошибка с [object Object] console.log)

Заранее спасибо!

1 Ответ

0 голосов
/ 27 апреля 2018

Исправлена ​​проблема с удалением библиотеки handlebars-helpers, из-за которой возникла некоторая проблема с флеш-сообщениями. (только в сочетании с тем, как Passport обрабатывает флеш-сообщения)

...