- Initial commit... A DB, some routes, and basic authentication routines...

This commit is contained in:
2019-07-04 16:19:30 -04:00
commit d9a2d33913
32 changed files with 3465 additions and 0 deletions

40
strategies/auth/google.js Normal file
View File

@@ -0,0 +1,40 @@
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
const config = require('../../config');
const User = require('../../models/user');
module.exports = function(passport) {
passport.use(new GoogleStrategy({
clientID: config.services.google.appId,
clientSecret: config.services.google.appSecret,
callbackURL: "http://www.example.com/auth/google/callback",
},
(accessToken, refreshToken, profile, callback) => {
const googleUser = profile.getBasicProfile();
User.findOrCreate(
{
email: googleUser.getEmail(),
'credentials.method': 'google',
'credentials.userId': googleUser.getId(),
},
{
avatar: googleUser.getImageUrl(),
email: googleUser.getEmail(),
firstName: googleUser.getGivenName(),
lastName: googleUser.getFamilyName(),
credentials: [{
accessToken,
userId: googleUser.getId(),
method: 'facebook',
profile,
}],
},
(err, user) => {
return done(err, user, { accessToken, refreshToken });
}
);
}
));
};