aiohttp middleware for working with JWT
Project description
aiohttp-jwt
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size aiohttp_jwt-0.6.1-py3-none-any.whl (5.8 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size aiohttp_jwt-0.6.1.tar.gz (5.2 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for aiohttp_jwt-0.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e666d1b0ab02ced7cb8edc693b0da2850445e6a917d9b94943a80164e04f2689 |
|
MD5 | ff94a4ad6a2e032ce15dadfd8205a1ca |
|
BLAKE2-256 | ccd2868c38f1bae7c3fac89ada750395eef821ddd9af8119c2a384db42182903 |