docs: def authenticate(self, request):
          """
          Returns a `User` if a correct username and password have been supplied
          using HTTP Basic authentication.  Otherwise returns `None`.
          """
          auth = get_authorization_header(request).split()
  
          if not auth or auth[0].lower() != b'basic':
              return None
  
          if len(auth) == 1:
              msg = _('Invalid basic header. No credentials provided.')
              raise exceptions.AuthenticationFailed(msg)
          elif len(auth) > 2:
              msg = _('Invalid basic header. Credentials string should not contain spaces.')
              raise exceptions.AuthenticationFailed(msg)
  
          try:
              auth_parts = base64.b64decode(auth[1]).decode(HTTP_HEADER_ENCODING).partition(':')
          except (TypeError, UnicodeDecodeError):
              msg = _('Invalid basic header. Credentials not correctly base64 encoded.')
              raise exceptions.AuthenticationFailed(msg)
  
          userid, password = auth_parts[0], auth_parts[2]
          return self.authenticate_credentials(userid, password)