确定策略用户登录的位置

时间:2013-11-04 15:06:42

标签: node.js passport.js passport-facebook

我的应用程序使用Passport和两个策略:Facebook和本地。是否有可能以某种方式(某些属性或状态变量)确定用户用于登录应用程序的策略(即,从 Passport中的某些信息确定)?是否有req对象中的某些属性或其他设置指示与登录用户关联的提供程序?如果可能的话,真的更喜欢从Passport获取这个,而不是设置我的ow变量来跟踪这个。

1 个答案:

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