Node.js authenticate()和req.login之间的PassportJS差异
我目前正在学习node、express和passport的后端开发和身份验证 我使用的ressource使用以下代码:Node.js authenticate()和req.login之间的PassportJS差异,node.js,express,authentication,session,passport.js,Node.js,Express,Authentication,Session,Passport.js,我目前正在学习node、express和passport的后端开发和身份验证 我使用的ressource使用以下代码: app.post("/login",(req,res") => { //Create user model here ... req.login(user, (err) => { ... } }) 然而,我发现这仅仅是写作 app.post("/login", passport.authenticate("local"
app.post("/login",(req,res") => {
//Create user model here
...
req.login(user, (err) => {
...
}
})
然而,我发现这仅仅是写作
app.post("/login", passport.authenticate("local", { failureRedirect: "/login" }), (req, res) => {
res.redirect("/secret");
})
结果也是一样的。老实说,在我看来,登录等同于身份验证。PassportJS文档提到这两种方法都设置了req.user
所以我的问题是:有什么区别,什么时候你会使用哪个/如何使用
提前谢谢 我认为我们不应该寻找差异。因为你提到的两个部分是互补的。根据您自己的passport站点定义: Passport在
req
上公开了一个login()
函数(别名为login()
),可用于建立登录会话
req.login(user, function(err) {
if (err) { return next(err); }
return res.redirect('/users/' + req.user.username);
});
登录操作完成后,用户将被分配到req.user
注意:passport.authenticate()
中间件自动调用req.login()
。此函数主要在用户注册时使用,在此期间可以调用req.login()
自动登录新注册的用户
最后,您可以阅读此链接