docs: function request(req) {
          var clientID = getParam(req, 'client_id')
              , redirectURI = getParam(req, 'redirect_uri')
              , scope = getParam(req, 'scope')
              , state = getParam(req, 'state');
  
          if (!clientID) {
              throw new AuthorizationError('Missing required parameter: client_id', 'invalid_request');
          }
  
          if (scope) {
              for (var i = 0, len = separators.length; i < len; i++) {
                  var separated = scope.split(separators[i]);
                  // only separate on the first matching separator.  this allows for a sort
                  // of separator "priority" (ie, favor spaces then fallback to commas)
                  if (separated.length > 1) {
                      scope = separated;
                      break;
                  }
              }
  
              if (!Array.isArray(scope)) {
                  scope = [scope];
              }
          }
  
          return {
              clientID: clientID,
              redirectURI: redirectURI,
              scope: scope,
              state: state
          };
      }