このように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
ルート呼び出しを介してそれ () を渡すことはできますか? 複数の「Facebook ログイン」を開始して、アプリごとに異なるログインを使用することはできますか?