Как использовать флэш-сообщение в браузере? Паспорт, Node.js, контент-flash

Я изучаю (довольно борюсь), Паспортный модуль. Я указал флеш-сообщения в своей Стратегии следующим образом:

passport.use(
  new Strategy(function(username, password, cb) {
    if (username !== "riko") {
      // console.log("Incorrect User");
      return cb(null, false, { message: "Icorrect user!" });
    }
    if (password !== "kote") {
      // console.log("Incorrect Password");
      return cb(null, false, { message: "Icorrect password!" });
    }
    return cb(null, { username: "riko", passpord: "kote", chemer: "memer" });
  })
);


 app.post(
    "/Login",
    passport.authenticate("local", {
      successRedirect: "/User",
      failureFlash: true
    }),
    function(req, res) {
      console.log("LOGIN POST!");
      res.redirect("/Home");
      // res.sendFile(path.join(__dirname, "client/build", "index.html"));
    }
  );

Я читал в документации, что эти флэш-сообщения можно использовать для информирования пользователя о статусе аутентификации:

Перенаправления часто сочетаются с флэш-сообщениями, чтобы отображать пользователю информацию о состоянии.

Установка для параметра failureFlash значения true указывает, что Passport выдает сообщение об ошибке, используя сообщение, полученное обратным вызовом проверки стратегии, если таковой имеется. Часто это лучший подход, потому что обратный вызов Verify может наиболее точно определить, почему аутентификация не удалась.

Проблема в том, что я не знаю, как получить доступ к этим флеш-сообщениям ни в бэкэнде, ни во фронтенде.


person Hairi    schedule 22.12.2018    source источник


Ответы (1)


Вы можете получить доступ к флэш-сообщениям, используя параметр запроса (req).

app.get('/User', function (req, res) {
  res.render('User', { message: req.flash('message') });
});
person kwyntes    schedule 22.12.2018