1234567891011121314151617181920212223242526272829303132333435 |
- 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
- })
- })
- )
- }
- }
|