UNPKG

linear

Version:

A simple setup micro-forum built in Node.js with Express and MongoDB.

43 lines (30 loc) 1.15 kB
const profileController = require('../../controllers/profile'); const passport = require('passport'); const GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; const AVATAR_DIMENSION = 200; if (process.env.GOOGLE_CLIENT_ID && process.env.GOOGLE_CLIENT_SECRET && process.env.GOOGLE_CALLBACK) { passport.use(new GoogleStrategy({ 'callbackURL': process.env.GOOGLE_CALLBACK, 'clientID': process.env.GOOGLE_CLIENT_ID, 'clientSecret': process.env.GOOGLE_CLIENT_SECRET, 'scope': 'profile' }, (accessToken, refreshToken, data, done) => { profileController.create('google', { 'avatar': data.photos[0].value.replace(/50$/, AVATAR_DIMENSION), 'id': data.id, 'name': data.displayName }) .then(profile => { done(null, profile); }); })); module.exports = router => { router.get('/', passport.authenticate('google')); router.get('/callback', passport.authenticate('google', { 'failureRedirect': '/login/', 'successRedirect': '/login/success/' })); }; }