Asynchronous OAuth 2.0 framework for Python 3
aioauth
implements OAuth 2.0 protocol and can be used in asynchronous frameworks like FastAPI / Starlette, aiohttp. It can work with any databases like MongoDB
, PostgreSQL
, MySQL
and ORMs like gino, sqlalchemy or databases over simple BaseStorage interface.
Why this project exists?
There are few great OAuth frameworks for Python like oauthlib and authlib, but they do not support asyncio and rewriting these libraries to asyncio is a significant challenge (see issues here and here).
Supported RFCs
- The OAuth 2.0 Authorization Framework
- OAuth 2.0 Token Introspection
- Proof Key for Code Exchange by OAuth Public Clients
- OpenID support
Installation
python -m pip install aioauth
FastAPI
FastAPI integration stored on separated aioauth-fastapi repository and can be installed via the command:
python -m pip install aioauth[fastapi]
aioauth-fastapi repository contains demo example which I recommend to look.