| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- Oidc = {};
 
- // Request OpenID Connect credentials for the user
 
- // @param options {optional}
 
- // @param credentialRequestCompleteCallback {Function} Callback function to call on
 
- //   completion. Takes one argument, credentialToken on success, or Error on
 
- //   error.
 
- Oidc.requestCredential = function (options, credentialRequestCompleteCallback) {
 
-   // support both (options, callback) and (callback).
 
-   if (!credentialRequestCompleteCallback && typeof options === 'function') {
 
-     credentialRequestCompleteCallback = options;
 
-     options = {};
 
-   }
 
-   Meteor.call("getServiceConfiguration", "oidc",(_, result) => {
 
-     if (result) {
 
-       var config = result;
 
-       var credentialToken = Random.secret();
 
-       var loginStyle = OAuth._loginStyle('oidc', config, options);
 
-       // options
 
-       options = options || {};
 
-       options.client_id = config.clientId;
 
-       options.response_type = options.response_type || 'code';
 
-       options.redirect_uri = OAuth._redirectUri('oidc', config);
 
-       options.state = OAuth._stateParam(loginStyle, credentialToken, options.redirectUrl);
 
-       options.scope = config.requestPermissions || 'openid profile email';
 
-       if (config.loginStyle && config.loginStyle == 'popup') {
 
-         options.display = 'popup';
 
-       }
 
-       var loginUrl = config.serverUrl + config.authorizationEndpoint;
 
-       // check if the loginUrl already contains a "?"
 
-       var first = loginUrl.indexOf('?') === -1;
 
-       for (var k in options) {
 
-         if (first) {
 
-           loginUrl += '?';
 
-           first = false;
 
-         }
 
-         else {
 
-           loginUrl += '&'
 
-         }
 
-         loginUrl += encodeURIComponent(k) + '=' + encodeURIComponent(options[k]);
 
-       }
 
-       //console.log('XXX: loginURL: ' + loginUrl)
 
-       options.popupOptions = options.popupOptions || {};
 
-       var popupOptions = {
 
-         width:  options.popupOptions.width || 320,
 
-         height: options.popupOptions.height || 450
 
-       };
 
-       OAuth.launchLogin({
 
-         loginService: 'oidc',
 
-         loginStyle: loginStyle,
 
-         loginUrl: loginUrl,
 
-         credentialRequestCompleteCallback: credentialRequestCompleteCallback,
 
-         credentialToken: credentialToken,
 
-         popupOptions: popupOptions,
 
-       });
 
-     }
 
-     else
 
-     {
 
-       credentialRequestCompleteCallback && credentialRequestCompleteCallback(
 
-         new ServiceConfiguration.ConfigError('Service oidc not configured.'));
 
-       return;
 
-     }
 
-   });
 
- };
 
 
  |