我在我的应用中使用多个护照策略。
现在,既然我正在使用多个护照策略来连接(而不仅仅是登录),我决定上Google查找如何实现它。
这就是我偶然发现的代码。
passport.authenticate('meetup', (err, user, info) => {
if (err) { return next(err); }
if (!user) { return res.redirect(process.env.CLIENT_ADDRESS); }
req.logIn(user, function(err) {
if (err) { return next(err); }
return res.redirect(process.env.CLIENT_ADDRESS);
});
在这里,我无法理解正在发生的事情,比如第一个问题,if (!user)
是什么意思?它是否指的是req.user
?
其次,有req.logIn()
根据护照文档,
Passport在req上暴露了一个login()函数(也称为logIn()),可用于建立登录会话。
并且
当登录操作完成后,用户将被分配给req.user。
那么使用serializer/deserializer与使用req.login有什么区别?
此外,在回调中,我们总是可以这样做
passReqToCallback: true
}, (req, accessToken, refreshToken, params, profile, cb) => {
获取req
总结一下,有人能帮我理解上面的代码片段吗?