Move indexing back into .identify() method.
This commit is contained in:
parent
2247eb72f9
commit
43f59a21fc
|
@ -15,11 +15,12 @@ AUTH_SCHEME = 'Bearer '
|
||||||
|
|
||||||
|
|
||||||
class JWTIdentityPolicy(AbstractIdentityPolicy):
|
class JWTIdentityPolicy(AbstractIdentityPolicy):
|
||||||
def __init__(self, secret, algorithm='HS256'):
|
def __init__(self, secret, algorithm='HS256', key: str = 'login'):
|
||||||
if jwt is None:
|
if jwt is None:
|
||||||
raise RuntimeError('Please install `PyJWT`')
|
raise RuntimeError('Please install `PyJWT`')
|
||||||
self.secret = secret
|
self.secret = secret
|
||||||
self.algorithm = algorithm
|
self.algorithm = algorithm
|
||||||
|
self.key = key
|
||||||
|
|
||||||
async def identify(self, request):
|
async def identify(self, request):
|
||||||
header_identity = request.headers.get(AUTH_HEADER_NAME)
|
header_identity = request.headers.get(AUTH_HEADER_NAME)
|
||||||
|
@ -36,7 +37,7 @@ class JWTIdentityPolicy(AbstractIdentityPolicy):
|
||||||
identity = jwt.decode(token,
|
identity = jwt.decode(token,
|
||||||
self.secret,
|
self.secret,
|
||||||
algorithms=[self.algorithm])
|
algorithms=[self.algorithm])
|
||||||
return identity
|
return identity.get(self.key)
|
||||||
|
|
||||||
async def remember(self, *args, **kwargs): # pragma: no cover
|
async def remember(self, *args, **kwargs): # pragma: no cover
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -43,7 +43,7 @@ async def test_identify(loop, make_token, aiohttp_client):
|
||||||
async def check(request):
|
async def check(request):
|
||||||
policy = request.app[IDENTITY_KEY]
|
policy = request.app[IDENTITY_KEY]
|
||||||
identity = await policy.identify(request)
|
identity = await policy.identify(request)
|
||||||
assert 'Andrew' == identity['login']
|
assert 'Andrew' == identity
|
||||||
return web.Response()
|
return web.Response()
|
||||||
|
|
||||||
app = web.Application()
|
app = web.Application()
|
||||||
|
|
Loading…
Reference in New Issue