const passport = require('passport') ; const GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; const User = require('./models/User') ; passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(user, done) { //User.findById(id, function(err, user) { done(null, user); //}); }); passport.use(new GoogleStrategy({ clientID: '1026548376782-5p5tjck8ffhan9l1ajhv6orr87dfkrrf.apps.googleusercontent.com', clientSecret: 'I0L_L2XY62MjJBhLJB3eyKly', callbackURL: "http://localhost:3000/auth/google/callback" }, async function(accessToken, refreshToken, profile, done) { //User.findOrCreate({ googleId: profile.id }, function (err, user) { //return done(null, profile); //}); try { let user = await User.findOne({googleId : profile.id}) ; if(user) { return done(null, profile); } else { user = new User({ googleId : profile.id , firstName : profile.name.givenName, lastName : profile.name.givenName , email : profile._json.email , }) ; await user.save() ; return done(null, profile); } } catch(err) { return done(err, profile); } } ));