diff --git a/server/api/controllers/show-config.js b/server/api/controllers/show-config.js index d1dc6f67..2740cb7b 100644 --- a/server/api/controllers/show-config.js +++ b/server/api/controllers/show-config.js @@ -4,11 +4,16 @@ module.exports = { if (sails.hooks.oidc.isActive()) { const oidcClient = sails.hooks.oidc.getClient(); + const authorizationParameters = { + scope: sails.config.custom.oidcScopes, + } + + if(!sails.config.custom.oidcDefaultResponseMode) { + authorizationParameters.response_mode = sails.config.custom.oidcResponseMode + } + oidc = { - authorizationUrl: oidcClient.authorizationUrl({ - scope: sails.config.custom.oidcScopes, - response_mode: 'fragment', - }), + authorizationUrl: oidcClient.authorizationUrl(authorizationParameters), endSessionUrl: oidcClient.issuer.end_session_endpoint ? oidcClient.endSessionUrl({}) : null, isEnforced: sails.config.custom.oidcEnforced, }; diff --git a/server/config/custom.js b/server/config/custom.js index ac8b9276..173e104e 100644 --- a/server/config/custom.js +++ b/server/config/custom.js @@ -40,6 +40,8 @@ module.exports.custom = { oidcClientId: process.env.OIDC_CLIENT_ID, oidcClientSecret: process.env.OIDC_CLIENT_SECRET, oidcScopes: process.env.OIDC_SCOPES || 'openid email profile', + oidcResponseMode: process.env.OIDC_RESPONSE_MODE || 'fragment', + oidcDefaultResponseMode: process.env.OIDC_DEFAULT_RESPONSE_MODE === 'true', oidcAdminRoles: process.env.OIDC_ADMIN_ROLES ? process.env.OIDC_ADMIN_ROLES.split(',') : [], oidcEmailAttribute: process.env.OIDC_EMAIL_ATTRIBUTE || 'email', oidcNameAttribute: process.env.OIDC_NAME_ATTRIBUTE || 'name',