[英]Node.js Authentication with Passport: How to flash a message if a field is missing?
[英]How to consume flash message in the browser? Passport, Node.js, content-flash
我正在学习(颇为挣扎)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消息结合使用,以便向用户显示状态信息。
将failFlash选项设置为true会指示Passport使用策略的验证回调(如果有)给出的消息来刷新错误消息。 这通常是最好的方法,因为验证回调可以最准确地确定身份验证失败的原因。
问题是我既不知道如何在后端也不访问前端这些Flash消息。
您可以使用request参数( req
)访问Flash消息。
app.get('/User', function (req, res) {
res.render('User', { message: req.flash('message') });
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.