From 09c2c996344fcfa4dee72a38bb9bec0f695a6a9a Mon Sep 17 00:00:00 2001 From: Sahat Yalkabov Date: Tue, 19 Nov 2013 01:03:11 -0500 Subject: [PATCH] facebook passport strategy implementation --- config/passport.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/config/passport.js b/config/passport.js index 698cdce50eb..eb5793ce9fc 100755 --- a/config/passport.js +++ b/config/passport.js @@ -39,9 +39,24 @@ passport.use(new FacebookStrategy({ callbackURL: config.facebook.callbackUrl || "http://localhost:8000/auth/facebook/callback" }, function (accessToken, refreshToken, profile, done) { - var user = module.exports.findOrCreateOauthUser(profile.provider, profile.id); - done(null, user); -})); + User.findOne({ $where: profile.provider + '==' + profile.id }, function(err, existingUser) { + if (existingUser) { + done(null, existingUser); + } else { + var user = new User({ + firstName: profile.first_name, + lastName: profile.last_name, + provider: profile.provider + }); + user[profile.provider] = profile.id; + user.save(function(err) { + done(null, user); + }); + } + }); + + } +)); // Simple route middleware to ensure user is authenticated. Otherwise send to login page. exports.ensureAuthenticated = function ensureAuthenticated(req, res, next) {