-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpassport_setup.js
More file actions
64 lines (36 loc) · 1.01 KB
/
Copy pathpassport_setup.js
File metadata and controls
64 lines (36 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth2').Strategy;
const User = require('./models/signin_schema.js')
const mongoose = require('mongoose')
passport.serializeUser(function (user,done) {
done(null,user.id)
})
passport.deserializeUser(function (id,done) {
User.findById(id).then((user)=>{
done(null,user)
}).catch(()=>{
console.log('error')
})
})
passport.use(new GoogleStrategy({
clientID:process.env.GOOGLE_CLIENT_ID,
clientSecret:process.env.GOOGLE_CLIENT_SECRET,
callbackURL:process.env.GOOGLE_CALLBACK_URL,
passReqToCallback:true
},function (request,accessToken,refreshToken,profile,done) {
console.log(profile)
User.findOne({googleId:profile.id}).then((currentUser)=>{
if (currentUser) {
done(null,currentUser)
}else{
new User({
googleId:profile.id,
name:profile.displayName,
email:profile.emails[0].value,
image:profile.picture
}).save().then((newUser)=>{
done(null,newUser)
})
}
})
}))