## Asynchronous OAuth 2.0 framework for Python 3
[![Build Status](https://github.com/aliev/aioauth/workflows/CI/badge.svg?branch=master)](https://github.com/aliev/aioauth/actions/workflows/ci.yml?query=branch%3Amaster)
[![Coverage](https://badgen.net/codecov/c/github/aliev/aioauth)](https://app.codecov.io/gh/aliev/aioauth)
[![License](https://img.shields.io/github/license/aliev/aioauth)](https://github.com/aliev/aioauth/blob/master/LICENSE)
[![PyPi](https://badgen.net/pypi/v/aioauth)](https://pypi.org/project/aioauth/)
[![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-370/)
`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
```
## FastAPI
FastAPI integration stored on separated [aioauth-fastapi](https://github.com/aliev/aioauth-fastapi) repository and can be installed via the command:
```
python -m pip install aioauth[fastapi]
```
[aioauth-fastapi](https://github.com/aliev/aioauth-fastapi) repository contains demo example which I recommend to look.
## [API Reference and User Guide](https://aliev.me/aioauth/)
Raw data
{
"_id": null,
"home_page": "https://github.com/aliev/aioauth",
"name": "aioauth",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7.0",
"maintainer_email": null,
"keywords": "asyncio oauth2 oauth",
"author": "Ali Aliyev",
"author_email": "ali@aliev.me",
"download_url": "https://files.pythonhosted.org/packages/fb/17/a548af2b18889446a94dd57551be1f7a93fdf3af9f90e2d00ee9833f5e3d/aioauth-1.7.0.tar.gz",
"platform": null,
"description": "## Asynchronous OAuth 2.0 framework for Python 3\n\n[![Build Status](https://github.com/aliev/aioauth/workflows/CI/badge.svg?branch=master)](https://github.com/aliev/aioauth/actions/workflows/ci.yml?query=branch%3Amaster)\n[![Coverage](https://badgen.net/codecov/c/github/aliev/aioauth)](https://app.codecov.io/gh/aliev/aioauth)\n[![License](https://img.shields.io/github/license/aliev/aioauth)](https://github.com/aliev/aioauth/blob/master/LICENSE)\n[![PyPi](https://badgen.net/pypi/v/aioauth)](https://pypi.org/project/aioauth/)\n[![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-370/)\n\n`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.\n\n## Why this project exists?\n\nThere 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)).\n\n## Supported RFCs\n\n- [x] [The OAuth 2.0 Authorization Framework](https://tools.ietf.org/html/rfc6749)\n- [X] [OAuth 2.0 Token Introspection](https://tools.ietf.org/html/rfc7662)\n- [X] [Proof Key for Code Exchange by OAuth Public Clients](https://tools.ietf.org/html/rfc7636)\n- [x] OpenID support\n\n## Installation\n\n```\npython -m pip install aioauth\n```\n\n## FastAPI\n\nFastAPI integration stored on separated [aioauth-fastapi](https://github.com/aliev/aioauth-fastapi) repository and can be installed via the command:\n\n```\npython -m pip install aioauth[fastapi]\n```\n\n[aioauth-fastapi](https://github.com/aliev/aioauth-fastapi) repository contains demo example which I recommend to look.\n\n## [API Reference and User Guide](https://aliev.me/aioauth/)\n\n\n",
"bugtrack_url": null,
"license": "The MIT License (MIT)",
"summary": "Asynchronous OAuth 2.0 framework for Python 3.",
"version": "1.7.0",
"project_urls": {
"Homepage": "https://github.com/aliev/aioauth",
"Source": "https://github.com/aliev/aioauth"
},
"split_keywords": [
"asyncio",
"oauth2",
"oauth"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a30112d90ffb888e583aebde9e0498c172ddbcd3b9c36657c294944e31cfea86",
"md5": "c39d227602ce7cc9db4735ceab5193a3",
"sha256": "b4c007018c94c97776aa73bba74b8e6f1ee51a4d9ce912d02d193550c2ca5f8d"
},
"downloads": -1,
"filename": "aioauth-1.7.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c39d227602ce7cc9db4735ceab5193a3",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.7.0",
"size": 28330,
"upload_time": "2024-10-20T07:19:01",
"upload_time_iso_8601": "2024-10-20T07:19:01.553556Z",
"url": "https://files.pythonhosted.org/packages/a3/01/12d90ffb888e583aebde9e0498c172ddbcd3b9c36657c294944e31cfea86/aioauth-1.7.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fb17a548af2b18889446a94dd57551be1f7a93fdf3af9f90e2d00ee9833f5e3d",
"md5": "df1a444904f60dd98f4741229945a0a9",
"sha256": "b2fae8c12afdabf53a428f354dfe3326e1152104f887886a72904d0916f88892"
},
"downloads": -1,
"filename": "aioauth-1.7.0.tar.gz",
"has_sig": false,
"md5_digest": "df1a444904f60dd98f4741229945a0a9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7.0",
"size": 22489,
"upload_time": "2024-10-20T07:19:03",
"upload_time_iso_8601": "2024-10-20T07:19:03.183073Z",
"url": "https://files.pythonhosted.org/packages/fb/17/a548af2b18889446a94dd57551be1f7a93fdf3af9f90e2d00ee9833f5e3d/aioauth-1.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-20 07:19:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "aliev",
"github_project": "aioauth",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "aioauth"
}