docs: def _post_parse_request(self, request, client_id='', **kwargs):
          """
          This is where clients come to get their access tokens
  
          :param request: The request
          :param authn: Authentication info, comes from HTTP header
          :returns:
          """
  
          if 'state' in request:
              try:
                  sinfo = self.endpoint_context.sdb[request['code']]
              except KeyError:
                  logger.error('Code not present in SessionDB')
                  return self.error_cls(error="unauthorized_client")
              else:
                  state = sinfo['authn_req']['state']
  
              if state != request['state']:
                  logger.error('State value mismatch')
                  return self.error_cls(error="unauthorized_client")
  
          if "client_id" not in request:  # Optional for access token request
              request["client_id"] = client_id
  
          logger.debug("%s: %s" % (request.__class__.__name__, sanitize(request)))
  
          return request