我有一个网站,允许用户通过点击登录登录,这将弹出一个Bootstrap模式而不重定向用户。我在许多网站上看到,如果您未能登录,您将保留在该路线上,所有会改变的信息都会显示一条消息,通知您登录失败。我想用本地护照这样做,在认证失败之后,我可以简单地显示一些CSS,同时仍然使用Bootstrap模式。
但是,我似乎只能显示一个req.flash,似乎我必须在身份验证失败后重定向或显示错误。
router.post("/login", passport.authenticate("local",
{
successRedirect: "/profile",
failureRedirect: "/",
failureFlash : true
})
);
目前,这就是我所能做的。是否可以按照我提到的方式进行,而无需重定向?护照文件显示没有这个。
答案 0 :(得分:1)
当然,你可以做任何你想做的事。来自官方docs:
app.post('/login',
passport.authenticate('local'),
function(req, res) {
// If this function gets called, authentication was successful.
// req.user contains the authenticated user.
res.redirect('/users/' + req.user.username);
});
"默认情况下,如果身份验证失败,Passport将以401 Unauthorized状态响应,并且不会调用任何其他路由处理程序。如果身份验证成功,将调用下一个处理程序,并将req.user属性设置为经过身份验证的用户。"
所以你要做的就是在客户端逻辑中处理401响应,然后根据它显示消息/ CSS。