| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | /* global WIKI */// ------------------------------------// Google ID Account// ------------------------------------const GoogleStrategy = require('passport-google-oauth20').Strategyconst _ = require('lodash')module.exports = {  init (passport, conf) {    const strategy = new GoogleStrategy({      clientID: conf.clientId,      clientSecret: conf.clientSecret,      callbackURL: conf.callbackURL,      passReqToCallback: true    }, async (req, accessToken, refreshToken, profile, cb) => {      try {        if (conf.hostedDomain && conf.hostedDomain != profile._json.hd) {          throw new Error('Google authentication should have been performed with domain ' + conf.hostedDomain)        }        const user = await WIKI.models.users.processProfile({          providerKey: req.params.strategy,          profile: {            ...profile,            picture: _.get(profile, 'photos[0].value', '')          }        })        cb(null, user)      } catch (err) {        cb(err, null)      }    })    if (conf.hostedDomain) {      strategy.authorizationParams = function(options) {        return {          hd: conf.hostedDomain        }      }    }    passport.use('google', strategy)  },  logout (conf) {    return '/'  }}
 |