Skip to main content

aiohttp middleware for working with JWT

Project description

aiohttp-jwt

Downloads Build Status codecov

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


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.6.1.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

aiohttp_jwt-0.6.1-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file aiohttp_jwt-0.6.1.tar.gz.

File metadata

  • Download URL: aiohttp_jwt-0.6.1.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for aiohttp_jwt-0.6.1.tar.gz
Algorithm Hash digest
SHA256 6bfa0eeafa76bc164b8cc6961f2541226d977f59c5de58eaf5a191f899ee381e
MD5 e7824abec06325eb4275f197db22515d
BLAKE2b-256 e72f1f17fb96577b6ff038034949df7ddcaf740c0780f1e699a157f0e387534e

See more details on using hashes here.

File details

Details for the file aiohttp_jwt-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: aiohttp_jwt-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for aiohttp_jwt-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e666d1b0ab02ced7cb8edc693b0da2850445e6a917d9b94943a80164e04f2689
MD5 ff94a4ad6a2e032ce15dadfd8205a1ca
BLAKE2b-256 ccd2868c38f1bae7c3fac89ada750395eef821ddd9af8119c2a384db42182903

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page