https://github.com/aliev/aioauth
Asynchronous OAuth 2.0 provider for Python 3
https://github.com/aliev/aioauth
aiohttp asgi asyncio fastapi oauth2 oauth2-server python python-3 python3
Last synced: 14 days ago
JSON representation
Asynchronous OAuth 2.0 provider for Python 3
- Host: GitHub
- URL: https://github.com/aliev/aioauth
- Owner: aliev
- License: mit
- Created: 2020-08-17T05:59:43.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-09T17:12:29.000Z (2 months ago)
- Last Synced: 2025-03-31T17:14:23.947Z (21 days ago)
- Topics: aiohttp, asgi, asyncio, fastapi, oauth2, oauth2-server, python, python-3, python3
- Language: Python
- Homepage: https://aliev.me/aioauth
- Size: 3.45 MB
- Stars: 218
- Watchers: 11
- Forks: 19
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
## Asynchronous OAuth 2.0 framework for Python 3
[](https://github.com/aliev/aioauth/actions/workflows/ci.yml?query=branch%3Amaster)
[](https://codecov.io/gh/aliev/aioauth)
[](https://github.com/aliev/aioauth/blob/master/LICENSE)
[](https://pypi.org/project/aioauth/)
[](https://www.python.org/downloads/release/python-390/)`aioauth` implements [OAuth 2.0 protocol](https://tools.ietf.org/html/rfc6749) and can be used in asynchronous frameworks like [FastAPI / Starlette](https://github.com/tiangolo/fastapi), [aiohttp](https://github.com/aio-libs/aiohttp). It can work with any databases like `MongoDB`, `PostgreSQL`, `MySQL` and ORMs like [gino](https://python-gino.org/), [sqlalchemy](https://www.sqlalchemy.org/) or [databases](https://pypi.org/project/databases/) over simple [BaseStorage](aioauth/storage.py) interface.
## Why this project exists?
There are few great OAuth frameworks for Python like [oauthlib](https://github.com/oauthlib/oauthlib) and [authlib](https://github.com/lepture/authlib), but they do not support asyncio and rewriting these libraries to asyncio is a significant challenge (see issues [here](https://github.com/lepture/authlib/issues/63) and [here](https://github.com/oauthlib/oauthlib/issues/415)).
## Supported RFCs
- [x] [The OAuth 2.0 Authorization Framework](https://tools.ietf.org/html/rfc6749)
- [X] [OAuth 2.0 Token Introspection](https://tools.ietf.org/html/rfc7662)
- [X] [Proof Key for Code Exchange by OAuth Public Clients](https://tools.ietf.org/html/rfc7636)
- [x] OpenID support## Installation
```
python -m pip install aioauth
```## Examples
The project example is located in the [examples](examples) directory and uses FastAPI as the server.
## [API Reference and User Guide](https://aliev.me/aioauth/)