passport.use(new OAuthLinkedinStrategy({ ...configs.passportStrategy.linkedin.default, ...configs.passportStrategy.linkedin[process.env.NODE_ENV], }, (req, accessToken, refreshToken, profile, done) => { findOrCreateUser( 'linkedin', profile._json.emailAddress, handleDbError(res)((user) => { // map `linkedin-specific` profile fields to our custom profile fields user.social.profile.linkedin = profile._json; user.email.value = user.email.value || profile._json.emailAddress; user.name = user.name || profile._json.formattedName; user.avatarURL = user.avatarURL || profile._json.pictureUrl; done(null, user); }) ); }));
/** * Sign in with LinkedIn. */ passport.use(new LinkedInStrategy(secrets.linkedin, function(req, accessToken, refreshToken, profile, done) { if (req.user) { UserRepo.linkLinkedInProfile(req.user.id, accessToken, refreshToken, profile) .then(function(user) { req.flash('info', { msg: 'LinkedIn account has been linked.' }); done(null, user); }) .catch(function(err) { req.flash('errors', { msg: err }); done(null, false, { message: err }); }); } else { UserRepo.createAccFromLinkedIn(accessToken, refreshToken, profile) .then(function(user) { done(null, user); }) .catch(function(error) { done(error); }); } }));