我正在学习(颇为挣扎)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消息。
答案 0 :(得分:0)
您可以使用请求参数(req
)访问Flash消息。
app.get('/User', function (req, res) {
res.render('User', { message: req.flash('message') });
});