验证失败后使用CSS响应用户。 (护照)

时间:2018-05-09 17:42:54

标签: node.js authentication passport.js passport-local

我有一个网站,允许用户通过点击登录登录,这将弹出一个Bootstrap模式而不重定向用户。我在许多网站上看到,如果您未能登录,您将保留在该路线上,所有会改变的信息都会显示一条消息,通知您登录失败。我想用本地护照这样做,在认证失败之后,我可以简单地显示一些CSS,同时仍然使用Bootstrap模式。

但是,我似乎只能显示一个req.flash,似乎我必须在身份验证失败后重定向或显示错误。

router.post("/login", passport.authenticate("local", 
{
    successRedirect: "/profile",
    failureRedirect: "/",
    failureFlash : true
})
);

目前,这就是我所能做的。是否可以按照我提到的方式进行,而无需重定向?护照文件显示没有这个。

1 个答案:

答案 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。