docs: def process_request(self, request_info=None, **kwargs):
          """ The AuthorizationRequest endpoint
  
          :param request_info: The authorization request as a dictionary
          :return: dictionary
          """
  
          if isinstance(request_info, AuthorizationErrorResponse):
              return request_info
  
          _cid = request_info["client_id"]
          cinfo = self.endpoint_context.cdb[_cid]
          try:
              cookie = kwargs['cookie']
          except KeyError:
              cookie = ''
          else:
              del kwargs['cookie']
  
          if proposed_user(request_info):
              kwargs['req_user'] = proposed_user(request_info)
          else:
              try:
                  _login_hint = request_info['login_hint']
              except KeyError:
                  pass
              else:
                  if self.endpoint_context.login_hint_lookup:
                      kwargs['req_user'] = self.endpoint_context.login_hint_lookup[
                          _login_hint]
  
          info = self.setup_auth(request_info, request_info["redirect_uri"],
                                 cinfo, cookie, **kwargs)
  
          if 'error' in info:
              return info
  
          try:
              _function = info['function']
          except KeyError:  # already authenticated
              logger.debug("- authenticated -")
              logger.debug("AREQ keys: %s" % request_info.keys())
  
              res = self.authz_part2(info['user'], info['authn_event'],
                                     request_info, cookie=cookie)
  
              return res
          else:
              try:
                  # Run the authentication function
                  return {
                      'http_response': _function(**info['args']),
                      'return_uri': request_info["redirect_uri"]
                  }
              except Exception as err:
                  logger.exception(err)
                  return {'http_response': 'Internal error: {}'.format(err)}