确定在哪个策略用户login

我的应用程序使用两种策略的护照:Facebook和本地。 是否有可能以某种方式(某些属性或状态variables)确定用户用来login应用程序的策略(即,根据Passport中的某些信息确定)? 在req对象中是否有一些属性或其他设置可以指示与login用户关联的提供者? 如果可能的话,我真的更喜欢从Passport那里得到这个,而不是设置我的owvariables来跟踪这个。

       

网上收集的解决方案 "确定在哪个策略用户login"

这不是Passport直接提供的。 我在应用程序中做了类似的事情,只是在loginpath上使用额外的中间件来跟踪与会话相关的信息,例如使用了什么提供程序。 它看起来像这样:

 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('/'); });