I made the authentication class this way:
Token authentication for RESTful APIs: should the token be changed periodically?
restapi/settings.py
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', 'rest_framework.authentication.SessionAuthentication', # 'rest_framework.authentication.TokenAuthentication', 'restapi.authentication.ExpiringTokenAuthentication', ), 'PAGINATE_BY': 10 }
restapi/authentication.py
import datetime from rest_framework.authentication import TokenAuthentication class ExpiringTokenAuthentication(TokenAuthentication): def authenticate_credentials(self, key): try: token = self.model.objects.get(key=key) except self.model.DoesNotExist: raise exceptions.AuthenticationFailed('Invalid token') if not token.user.is_active: raise exceptions.AuthenticationFailed('User inactive or deleted')
restapi/tests.py
def test_get_missions(self): """ Tests that /missions/ returns with no error """ response = self.client.get('/missions/', HTTP_AUTHORIZATION = self.auth)
In my tests, I have an AttributeError: 'WSGIRequest' object has no attribute 'successful_authenticator' exception AttributeError: 'WSGIRequest' object has no attribute 'successful_authenticator'
Why do I have such an error? How to fix it?
authentication django django-rest-framework token
Benjamin Toueg May 24 '13 at 1:55 pm 2013-05-24 13:55
source share