const _ = require('lodash') /* global WIKI */ // ------------------------------------ // OpenID Connect Account // ------------------------------------ const OpenIDConnectStrategy = require('passport-openidconnect').Strategy module.exports = { init (passport, conf) { passport.use('oidc', new OpenIDConnectStrategy({ authorizationURL: conf.authorizationURL, tokenURL: conf.tokenURL, clientID: conf.clientId, clientSecret: conf.clientSecret, issuer: conf.issuer, callbackURL: conf.callbackURL }, (iss, sub, profile, jwtClaims, accessToken, refreshToken, params, cb) => { WIKI.models.users.processProfile({ id: jwtClaims.sub, provider: 'oidc', email: _.get(jwtClaims, conf.emailClaim), name: _.get(jwtClaims, conf.usernameClaim) }).then((user) => { return cb(null, user) || true }).catch((err) => { return cb(err, null) || true }) }) ) } }