1

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

4

1 回答 1

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('/');
  });
于 2013-11-05T23:35:01.337 回答