Skip to content

Instantly share code, notes, and snippets.

@Rishabh570
Created April 30, 2022 12:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Rishabh570/f0137e8aaa4151d0df1efefce396f97e to your computer and use it in GitHub Desktop.
Save Rishabh570/f0137e8aaa4151d0df1efefce396f97e to your computer and use it in GitHub Desktop.
var passport = require('passport');
var GoogleStrategy = require('passport-google-oauth20').Strategy;
var User = require('@models/user');
var config = require('@config');
passport.use(new GoogleStrategy({
clientID: config.googleClientId,
clientSecret: config.googleClientSecret,
callbackURL: config.googleCallbackUrl,
scope: ['profile', 'email'],
passReqToCallback: true,
state: true,
},
function(req, accessToken, refreshToken, profile, done) {
try {
var searchQuery = {
name: profile.displayName
};
// update the user if s/he exists or add a new user
User.findOne(searchQuery, function(err, user) {
if(err) {
console.log('[google] err: ', err);
return done(err);
} else if (user !== null) {
console.log('google user already there');
return done(null, user);
}
console.log("user not present, creating one...");
user = new User({
name: profile.displayName,
email: profile['_json']['email'],
profileId: profile.id,
google: {
accessToken,
profileId: profile.id,
email: profile['_json']['email']
}
});
user.save(function(err) {
if(err) {
console.log('err occurred while saving google user: ', err);
console.log(err); // handle errors!
} else {
console.log("saving user ...");
}
});
});
} catch (verifyErr) {
done(verifyErr);
}
}
));
module.exports = passport;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment