User.findOne({ 'facebook.id' : profile.id }, function(err, user) { if (err) throw err; if (user) { req.session.strategy = 'facebook'; return done(null, user); } else { var newUser = new User(); newUser.facebook.id = profile.id; newUser.facebook.token = accessToken; newUser.facebook.username = profile.name.givenName; newUser.save(function(err) { if (err) throw err; req.session.strategy = 'facebook'; return done(null, newUser); }); } });
r.connect(config, (err, conn) => { createUser(conn, { email: profile.email || '', name: { displayName: profile.displayName || '', familyName: profile.name.familyName || '', givenName: profile.name.givenName || '' }, auth: { id: profile.id || '', type: 'facebook', accessToken, refreshToken }, gender: profile.gender || '', picture: profile.profileUrl || '' }) .then(user => { if (user.err && user.name) // User already exists done(null, user, { message: user.err }) else if (user.err) { // User creation error console.error(`Authentication Error: ${user.err}`) // eslint-disable-line no-console done(null, false, { message: user.err }) } else // User created done(null, user, { message: 'Account created with Google.' }) }) })
options, (accessToken, refreshToken, profile, next) => { if (profile.emails && profile.emails.length > 0 && profile.name && profile.name.givenName) { const id = profile.id; } else { const email = profile.emails[0].value; const name = profile.name.givenName + (profile.name.familyName ? (' ' + profile.name.familyName) : ''); const socialData = { id: id, accessToken: accessToken, refreshToken: refreshToken };
newUser.facebook.id = profile.id; newUser.facebook.token = token; newUser.facebook.name = profile.name.givenName; newUser.facebook.email = profile.emails[0].value; newUser.save(function (err) {
user.facebook.name = profile.name.givenName + ' ' + profile.name.familyName; user.facebook.email = (profile.emails[0].value || '').toLowerCase(); newUser.facebook.name = profile.name.givenName + ' ' + profile.name.familyName; newUser.facebook.email = (profile.emails[0].value || '').toLowerCase(); user.facebook.name = profile.name.givenName + ' ' + profile.name.familyName; user.facebook.email = (profile.emails[0].value || '').toLowerCase();
first_name: loggedInUser.first_name || profile.name.givenName, last_name: loggedInUser.last_name || profile.name.familyName, gender: loggedInUser.gender || profile._json.gender, picture: loggedInUser.picture || `https://graph.facebook.com/${profile.id}/picture?type=large`, first_name: user.first_name || profile.name.givenName, last_name: user.last_name || profile.name.familyName, gender: user.gender || profile._json.gender, picture: user.picture || `https://graph.facebook.com/${profile.id}/picture?type=large`, first_name: profile.name.givenName, last_name: profile.name.familyName, email: profile._json.email, gender: profile._json.gender, location: profile._json.location && profile._json.location.name, picture: `https://graph.facebook.com/${profile.id}/picture?type=large`, facebook: profile.id
passport.use(new FacebookStrategy({ clientID: configAuth.facebookAuth.clientID, clientSecret: configAuth.facebookAuth.clientSecret, callbackURL: configAuth.facebookAuth.callbackURL, profileFields: ['id', 'email', 'first_name', 'last_name'], }, function(token, refreshToken, profile, done) { process.nextTick(function() { User.findOne({ 'facebook.id': profile.id }, function(err, user) { if (err) return done(err); if (user) { return done(null, user); } else { var newUser = new User(); newUser.facebook.id = profile.id; newUser.facebook.token = token; newUser.facebook.name = profile.name.givenName + ' ' + profile.name.familyName; newUser.facebook.email = (profile.emails[0].value || '').toLowerCase(); newUser.save(function(err) { if (err) throw err; return done(null, newUser); }); } }); }); }));