我的应用程序使用Passport和两个策略:Facebook和本地。是否有可能以某种方式(某些属性或状态变量)确定用户用于登录应用程序的策略(即,从 Passport中的某些信息确定)?是否有req
对象中的某些属性或其他设置指示与登录用户关联的提供程序?如果可能的话,真的更喜欢从Passport获取这个,而不是设置我的ow变量来跟踪这个。
答案 0 :(得分:3)
直接在Passport中没有提供。我在应用程序中做了类似的事情,只需在登录路径上使用额外的中间件来跟踪与会话相关的信息,例如使用了什么提供程序。它看起来像:
app.get('/auth/facebook/callback',
passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res, next) {
req.session.loggedInWith = 'facebook';
next();
},
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});