authentication.js 1012 B

1234567891011121314151617181920212223242526272829303132333435
  1. const _ = require('lodash')
  2. /* global WIKI */
  3. // ------------------------------------
  4. // OpenID Connect Account
  5. // ------------------------------------
  6. const OpenIDConnectStrategy = require('passport-openidconnect').Strategy
  7. module.exports = {
  8. init (passport, conf) {
  9. passport.use('oidc',
  10. new OpenIDConnectStrategy({
  11. authorizationURL: conf.authorizationURL,
  12. tokenURL: conf.tokenURL,
  13. clientID: conf.clientId,
  14. clientSecret: conf.clientSecret,
  15. issuer: conf.issuer,
  16. callbackURL: conf.callbackURL
  17. }, (iss, sub, profile, jwtClaims, accessToken, refreshToken, params, cb) => {
  18. WIKI.models.users.processProfile({
  19. id: jwtClaims.sub,
  20. provider: 'oidc',
  21. email: _.get(jwtClaims, conf.emailClaim),
  22. name: _.get(jwtClaims, conf.usernameClaim)
  23. }).then((user) => {
  24. return cb(null, user) || true
  25. }).catch((err) => {
  26. return cb(err, null) || true
  27. })
  28. })
  29. )
  30. }
  31. }