Compare commits

..

1 Commits
master ... jwt

Author SHA1 Message Date
Sam Bull 43f59a21fc Move indexing back into .identify() method. 2020-12-19 16:44:41 +00:00
3 changed files with 8 additions and 7 deletions

View File

@ -15,11 +15,12 @@ AUTH_SCHEME = 'Bearer '
class JWTIdentityPolicy(AbstractIdentityPolicy):
def __init__(self, secret, algorithm='HS256'):
def __init__(self, secret, algorithm='HS256', key: str = 'login'):
if jwt is None:
raise RuntimeError('Please install `PyJWT`')
self.secret = secret
self.algorithm = algorithm
self.key = key
async def identify(self, request):
header_identity = request.headers.get(AUTH_HEADER_NAME)
@ -36,7 +37,7 @@ class JWTIdentityPolicy(AbstractIdentityPolicy):
identity = jwt.decode(token,
self.secret,
algorithms=[self.algorithm])
return identity
return identity.get(self.key)
async def remember(self, *args, **kwargs): # pragma: no cover
pass

View File

@ -1,11 +1,11 @@
-e .
flake8==3.8.4
async-timeout==3.0.1
pytest==6.2.1
pytest==6.1.2
pytest-cov==2.10.1
pytest-mock==3.4.0
coverage==5.3.1
sphinx==3.4.1
pytest-mock==3.3.1
coverage==5.3
sphinx==3.3.1
pep257==0.7.0
aiohttp-session==2.9.0
aiopg[sa]==1.1.0

View File

@ -43,7 +43,7 @@ async def test_identify(loop, make_token, aiohttp_client):
async def check(request):
policy = request.app[IDENTITY_KEY]
identity = await policy.identify(request)
assert 'Andrew' == identity['login']
assert 'Andrew' == identity
return web.Response()
app = web.Application()