You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
const _ = require('lodash')
/* global WIKI */
// ------------------------------------
// Keycloak Account
// ------------------------------------
const KeycloakStrategy = require('@exlinc/keycloak-passport')
module.exports = { init (passport, conf) { passport.use('keycloak', new KeycloakStrategy({ authorizationURL: conf.authorizationURL, userInfoURL: conf.userInfoURL, tokenURL: conf.tokenURL, host: conf.host, realm: conf.realm, clientID: conf.clientId, clientSecret: conf.clientSecret, callbackURL: conf.callbackURL }, async (accessToken, refreshToken, profile, cb) => { let displayName = profile.username if (_.isString(profile.fullName) && profile.fullName.length > 0) { displayName = profile.fullName } try { const user = await WIKI.models.users.processProfile({ profile: { id: profile.keycloakId, email: profile.email, name: displayName, picture: '' }, providerKey: 'keycloak' }) cb(null, user) } catch (err) { cb(err, null) } }) ) } }
|