Added support for 'Authorization: Bearer <TOKEN>' header in Request.token property.

Also added a test case for that kind of header.
This commit is contained in:
François KUBLER 2017-06-22 18:11:23 +02:00
parent b5369e611c
commit 55f860da2f
2 changed files with 18 additions and 4 deletions

View File

@ -86,11 +86,15 @@ class Request(dict):
:return: token related to request :return: token related to request
""" """
prefixes = ('Token ', 'Bearer ')
auth_header = self.headers.get('Authorization') auth_header = self.headers.get('Authorization')
if auth_header is not None and 'Token ' in auth_header:
return auth_header.partition('Token ')[-1] if auth_header is not None:
else: for prefix in prefixes:
return auth_header if prefix in auth_header:
return auth_header.partition(prefix)[-1]
return auth_header
@property @property
def form(self): def form(self):

View File

@ -182,6 +182,16 @@ def test_token():
assert request.token == token assert request.token == token
token = 'a1d895e0-553a-421a-8e22-5ff8ecb48cbf'
headers = {
'content-type': 'application/json',
'Authorization': 'Bearer {}'.format(token)
}
request, response = app.test_client.get('/', headers=headers)
assert request.token == token
# no Authorization headers # no Authorization headers
headers = { headers = {
'content-type': 'application/json' 'content-type': 'application/json'