質問

My app uses Passport with two Strategies: Facebook and Local. Is it possible to determine somehow (some property or state variable) which Strategy the user used to log in to the app (i.e., determine from some information within Passport)? Is there some property or other setting in maybe the req object that indicates the provider associated with the logged-in user? Would really prefer to get this from Passport rather than setting up my ow variables to keep track of this, if at all possible.

役に立ちましたか?

解決

That's not provided in Passport directly. I've done something similar in an app, and just use an extra bit of middleware on the login route to track session-related information, such as what provider was used. It looks something like:

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('/');
  });
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top