如何在浏览器中使用Flash消息? Passport,Node.js,内容闪存

时间:2018-12-22 17:19:38

标签: javascript node.js passport.js flash-message

我正在学习(颇为挣扎)Passport模块。我在“策略”中指定了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"));
    }
  );

我在文档中读到,这些Flash消息可用于通知用户身份验证状态:

  

重定向通常与Flash消息结合使用,以便向用户显示状态信息。

     

将failureFlash选项设置为true会指示Passport使用策略的验证回调(如果有)给出的消息刷新错误消息。这通常是最好的方法,因为verify回调可以最准确地确定身份验证失败的原因。

问题是我不知道如何在后端和前端都不访问这些Flash消息。

1 个答案:

答案 0 :(得分:0)

您可以使用请求参数(req)访问Flash消息。

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