-
Notifications
You must be signed in to change notification settings - Fork 3
/
passport.js
25 lines (22 loc) · 820 Bytes
/
passport.js
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
var passport = require('passport');
var GoogleStrategy = require('passport-google-oauth20').Strategy;
require('dotenv').config()
passport.serializeUser(function (user, done) {
done(null, user._id);
});
passport.deserializeUser(function (id, done) {
User.findOne({ _id: id }, function (err, user) {
done(err, user);
})
});
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: "http://localhost:9000/auth/google/callback"
},
function (accessToken, refreshToken, profile, cb) {
User.findOrCreate({ googleId: profile.id, email: profile.emails[0].value, name: profile.name.givenName + " " + profile.name.familyName }, function (err, user) {
return cb(err, user);
});
}
));