Move indexing back into .identify() method.

This commit is contained in:
Sam Bull 2020-12-19 16:44:41 +00:00
parent 2247eb72f9
commit 43f59a21fc
2 changed files with 4 additions and 3 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

@ -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()