code: function authorizationParams (options) {
    // ensure options is defined
    options = options || {}
  
    // essential request params
    var params = {
      response_type: options.response_type || 'code',
      client_id: this.client_id,
      redirect_uri: options.redirect_uri || this.redirect_uri,
      scope: options.scope || this.scope
    }
  
    // optional request params
    var optionalParameters = [
      'email',
      'password',
      'provider',
      'state',
      'response_mode',
      'nonce',
      'display',
      'prompt',
      'max_age',
      'ui_locales',
      'id_token_hint',
      'login_hint',
      'post_logout_redirect_uri',
      'acr_values'
    ]
  
    // assign optional request params
    optionalParameters.forEach(function (param) {
      if (options[param]) {
        params[param] = options[param]
      }
    })
  
    return params
  }
docs: Composes and returns a hashmap of parameters used for any sort of OIDC
  request, both the required ones (like the client_id, scope, etc) and the
  optional ones. Mainly used by `authorizationUri()`.
  @method authorizationParams
  @private
  @param [options={}]
  @param [options.acr_values]
  @param [options.display]
  @param [options.email]
  @param [options.id_token_hint]
  @param [options.login_hint]
  @param [options.max_age]
  @param [options.nonce]
  @param [options.password]
  @param [options.post_logout_redirect_uri] {String} For `signout()` requests
  @param [options.prompt]
  @param [options.provider]
  @param [options.redirect_uri]
  @param [options.response_type='code']
  @param [options.scope]
  @param [options.state]
  @param [options.ui_locales]
  @return {Object} Hashmap of OIDC request parameters