mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-01-24 08:14:16 +03:00
Use "Token" as the scheme for token auth
This commit is contained in:
parent
5a3874ee11
commit
7f98741939
|
@ -127,13 +127,13 @@ class TokenAuthTests(TestCase):
|
|||
|
||||
def test_post_form_passing_token_auth(self):
|
||||
"""Ensure POSTing json over token auth with correct credentials passes and does not require CSRF"""
|
||||
auth = self.key
|
||||
auth = 'Token %s' % self.key
|
||||
response = self.csrf_client.post('/', {'example': 'example'}, HTTP_AUTHORIZATION=auth)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_post_json_passing_token_auth(self):
|
||||
"""Ensure POSTing form over token auth with correct credentials passes and does not require CSRF"""
|
||||
auth = self.key
|
||||
auth = 'Token %s' % self.key
|
||||
response = self.csrf_client.post('/', json.dumps({'example': 'example'}), 'application/json', HTTP_AUTHORIZATION=auth)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
|
|
@ -15,14 +15,17 @@ class TokenAuthentication(BaseAuthentication):
|
|||
The BaseToken class is available as an abstract model to be derived from.
|
||||
|
||||
The token key should be passed in as a string to the "Authorization" HTTP
|
||||
header.
|
||||
header. For example:
|
||||
|
||||
Authorization: Token 0123456789abcdef0123456789abcdef
|
||||
|
||||
"""
|
||||
model = Token
|
||||
|
||||
def authenticate(self, request):
|
||||
key = request.META.get('HTTP_AUTHORIZATION', '').strip()
|
||||
if not key:
|
||||
return None
|
||||
auth = request.META.get('HTTP_AUTHORIZATION', '').strip().split()
|
||||
if len(auth) == 2 and auth[0].lower() == "token":
|
||||
key = auth[1]
|
||||
|
||||
try:
|
||||
token = self.model.objects.get(key=key)
|
||||
|
|
Loading…
Reference in New Issue
Block a user