1

我已经像这样使用passport-facebook设置了我的facebook登录

passport.use(new FacebookStrategy(secrets.facebook, function(req, accessToken, refreshToken, profile, done) {
  if (req.user) {
    User.findOne({ facebook: profile.id }, function(err, existingUser) {
      if (existingUser) {
         ...bla bla
          user.save(function(err) {
            req.flash('info', { msg: 'Facebook account has been linked.' });
            done(err, user);
          });
        });
      }
    });
  } else {
    User.findOne({ facebook: profile.id }, function(err, existingUser) {
      if (existingUser) return done(null, existingUser);
      User.findOne({ email: profile._json.email }, function(err, existingEmailUser) {
        if (existingEmailUser) {
       ...bla bla
          user.save(function(err) {
            done(err, user);
          });
        }
      });
    });
  }
}));

我的路线是这样的:

 router.get(namespace + '/auth/facebook', passport.authenticate('facebook', { scope: ['email', 'user_location'] }));
    router.get(namespace + '/auth/facebook/callback', passport.authenticate('facebook', { failureRedirect: '/login' }), function(req, res) {
        res.json({})
    });

问题是,我在该服务上运行了不止一个应用程序,我希望所有应用程序都使用 facebook 进行身份验证,但我希望每个应用程序都查询并保存到不同的 db ,这意味着不同的User模型。

我可以User通过路由调用传递它(the)吗?我可以启动多个“facebook 登录”并为每个应用使用不同的登录吗?

4

0 回答 0