aiohttp middleware for working with JWT
Project description
aiohttp-jwt
The API is in the process of settling, but has not yet had sufficient real-world testing to be considered stable. Backwards-compatibility will be maintained if reasonable.
The library provides aiohttp
middleware and helper utils for working with JSON web tokens.
- Works on Python3.5+
- MIT License
- Latest docs TBD
- Contributions are highly welcome!
Requirements
Install
$ pip install aiohttp_jwt
Simple Usage
server.py
import jwt
from aiohttp import web
from aiohttp_jwt import JWTMiddleware
sharable_secret = 'secret'
async def protected_handler(request):
return web.json_response({'user': request['payload']})
app = web.Application(
middlewares=[
JWTMiddleware(sharable_secret),
]
)
app.router.add_get('/protected', protected_handler)
if __name__ == '__main__':
web.run_app(app)
client.py
import asyncio
import aiohttp
import async_timeout
async def fetch(session, url, headers=None):
async with async_timeout.timeout(10):
async with session.get(url, headers=headers) as response:
return await response.json()
async def main():
async with aiohttp.ClientSession() as session:
response = await fetch(
session,
'http://localhost:8080/protected',
headers={'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6InRlc3QifQ.pyNsXX_vNsUvdt6xu13F1Gs1zGELT4Va8a38eG5svBA'})
print(response)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Examples
Credits
This module inspired by official auth0/express-jwt middleware and express-jwt-permissions extension.
Related packages
For advanced security facilities check aio-libs/aiohttp_security
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiohttp_jwt-0.4.0.tar.gz
(5.3 kB
view hashes)
Built Distribution
Close
Hashes for aiohttp_jwt-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bb59451b6c5c553ceb33518e54ec380c6b3c1c4768354e233e212348297954f |
|
MD5 | df5c320d163094c21ba43bfd822137d3 |
|
BLAKE2b-256 | b6b482c9daed33d63ea5eecd2eb8b8b97531fdae49053ebf29b1a535b4d6701e |