          in turn.
          Returns a three-tuple of (authenticator, user, authtoken).
          """
          for authenticator in self.authenticators:
              user_auth_tuple = authenticator.authenticate(self)
              if not user_auth_tuple is None:
                  user, auth = user_auth_tuple
                  return (authenticator, user, auth)
          return self._not_authenticated()
  
 
</s> remove                 user, auth = user_auth_tuple
                return (authenticator, user, auth)
        return self._not_authenticated()
 </s> add                 self._authenticator = authenticator
                self._user, self._auth = user_auth_tuple
                return

        self._not_authenticated() </s> remove             auth = api_settings.UNAUTHENTICATED_TOKEN()
 </s> add             self._auth = api_settings.UNAUTHENTICATED_TOKEN() </s> remove             auth = None

        return (None, user, auth)
 </s> add             self._auth = None </s> remove             self._authenticator, self._user, self._auth = self._authenticate()
 </s> add             self._authenticate() </s> remove             self._authenticator, self._user, self._auth = self._authenticate()
 </s> add             self._authenticate()
            try:
                user_auth_tuple = authenticator.authenticate(self)
            except exceptions.APIException:
                self._not_authenticated()
                raise

          in turn.
          Returns a three-tuple of (authenticator, user, authtoken).
          """
          for authenticator in self.authenticators:
            try:
                user_auth_tuple = authenticator.authenticate(self)
            except exceptions.APIException:
                self._not_authenticated()
                raise

              if not user_auth_tuple is None:
                  user, auth = user_auth_tuple
                  return (authenticator, user, auth)
          return self._not_authenticated()
  
keep keep keep keep replace keep keep keep keep keep
 request.user should be still be accessible in renderer context if authentication fails 
rest_framework/request.py