###### <h1 align="center">Simplify OAuth2 Authentication</h1>
---
<p align="center">
<a href="https://mukhsin-gitbook.gitbook.io/omni-authify/">
<img src="https://img.shields.io/static/v1?message=Documented%20on%20GitBook&logo=gitbook&logoColor=ffffff&label=%20&labelColor=5c5c5c&color=3F89A1" alt="Documentation"/>
</a>
<a href="https://github.com/Omni-Libraries/omni-authify.git">
<img src="https://img.shields.io/badge/Open_Source-❤️-FDA599?"/>
</a>
<a href="https://discord.gg/BQrvDpcw">
<img src="https://img.shields.io/badge/Community-Join%20Us-blueviolet" alt="Community"/>
</a>
<a href="https://github.com/Omni-Libraries/omni-authify/issues">
<img src="https://img.shields.io/github/issues/Omni-Libraries/omni-authify" alt="Issues"/>
</a>
<a href="https://pypi.org/project/omni-authify/">
<img src="https://img.shields.io/pypi/dm/omni-authify" alt="PyPI Downloads"/>
</a>
<a href="https://pepy.tech/project/omni-authify">
<img src="https://static.pepy.tech/personalized-badge/omni-authify?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads" alt="Total Downloads"/>
</a>
</p>
---
<p align="center">
<a href="https://app.screendesk.io/recordings/new?ak=HnyR4g&key=BSlsFw&src=rria">
<img src="https://img.shields.io/badge/Submit_Issue_with_Screen_Recording-%F0%9F%93%B7-green" alt="Submit Issue with Screen Recording"/>
</a>
<br>
If you're experiencing any issues or have suggestions, please record your screen and submit it <a href="https://app.screendesk.io/recordings/new?ak=HnyR4g&key=BSlsFw&src=rria">here</a>! This helps us understand your problem better and resolve it more efficiently.
</p>
---
Omni-Authify is a Python library that makes OAuth2 authentication a breeze across multiple frameworks and providers. Its main goal is to give you a unified and easy-to-use interface for adding social logins to your applications.
```mermaid
flowchart TD
%% Value Proposition
valueProposition["🚀 Save Your Time and Spend it with your Family
<br/>⏱️ Integrate Multiple OAuth Providers in Minutes
<br/>🔓 Secure, Standardized Social Login Solution"]
%% System Requirements
subgraph Requirements ["🔧 System Requirements"]
python[" Python 3.8+
🐍 Minimum Version"]
pip[" pip 24.3.1+
📦 Package Manager"]
requests[" requests>=2.32.3
🌐 HTTP Library"]
end
%% Providers Subgraph
subgraph Providers ["🌍 OAuth2 Providers"]
google[" Google
OAuth 2.0
📦 Client ID/Secret"]
facebook[" Facebook/Instagram
OAuth 2.0
📦 Client ID/Secret
🔒 Scope: email,public_profile"]
twitter[" Twitter/X
OAuth 2.0
📦 Client ID/Secret"]
linkedin[" LinkedIn
OAuth 2.0
📦 Client ID/Secret"]
github[" GitHub
OAuth 2.0
📦 Client ID/Secret"]
apple[" Apple
OAuth 2.0
📦 Client ID/Secret
🔒 Sign in with Apple"]
telegram[" Telegram
Bot Token
🔑 API Token"]
end
%% Frameworks Subgraph
subgraph Frameworks ["🧰 Supported Frameworks"]
django[" Django
Version: 3+
📦 pip install omni-authify[django]
🔧 Django>=4.2, <=5.1.3"]
djangoDRF[" Django-DRF
Version: 3.3+
📦 pip install omni-authify[drf]
🔧 DRF>=3.12.3, <=3.15.2"]
fastapi[" FastAPI
Latest Version
📦 pip install omni-authify[fastapi]
🔧 fastapi>=0.115.0"]
flask[" Flask
Latest Version
📦 pip install omni-authify[flask]
🔧 Flask>=3.0.0"]
end
%% Connections
valueProposition --> Requirements
Requirements --> Providers
Providers --> Frameworks
%% Styling
classDef providerStyle fill:#f0f8ff,color:#003366,stroke:#6699cc,stroke-width:2px;
classDef frameworkStyle fill:#e6f3e6,color:#004d00,stroke:#66a366,stroke-width:2px;
classDef requirementsStyle fill:#fff0e6,color:#4d2600,stroke:#cc8533,stroke-width:2px;
classDef valuePropositionStyle fill:#e6f2ff,color:#000080,stroke:#4169e1,stroke-width:3px,font-weight:bold;
class google,facebook,twitter,linkedin,github,apple,telegram providerStyle;
class django,djangoDRF,fastapi,flask frameworkStyle;
class python,pip,requests requirementsStyle;
class valueProposition valuePropositionStyle;
```
## ✨ Features
- **🌍 Multiple Providers**: Currently supports Facebook OAuth2 authentication, with more to come.
- **🔧 Framework Integration**: Works seamlessly with Django, Django REST Framework (DRF), FastAPI and Flask.
- **⚡ Easy to Use**: Requires minimal setup to get started.
- **🚀 Extensible**: Designed to support more providers and frameworks as your needs grow.
---
## 🚀 Usage Examples
Follow the example below to quickly integrate Omni-Authify into your application.
```python
from omni_authify.providers import Facebook, GitHub
# ==== Initialize the Facebook provider ====
facebook_provider = Facebook(
client_id='your-client-id',
client_secret='your-client-secret',
redirect_uri='your-redirect-uri'
)
# Get authorization URL
facebook_auth_url = facebook_provider.get_authorization_url(state='your-state')
# After redirect and code exchange
facebook_access_token = facebook_provider.get_access_token(code='authorization-code')
# Fetch user profile
facebook_user_info = facebook_provider.get_user_profile(facebook_access_token, fields='your-fields')
# ==== Initialize the GitHub provider ====
github_provider = GitHub(
client_id='🔑 your-facebook-client-id',
client_secret='🔒 your-facebook-client-secret',
redirect_uri='🌐 your-facebook-redirect-uri',
scope="user,repo"
)
# Get authorization URL
github_auth_url = github_provider.get_authorization_url(state='your-state')
# After redirect and code exchange
github_access_token = github_provider.get_access_token(code='authorization-code')
# Fetch user profile
github_user_info = github_provider.get_user_profile(github_access_token)
```
---
## 🛠️ Installation Guide
Check out the full installation guide - [Installation](https://omni-libraries.mukhsin.space/installation) for detailed instructions on how to add Omni-Authify to your project.
## 📜 Supported Providers and Frameworks
Omni-Authify currently supports Facebook, GitHub OAuth2 and integrates smoothly with Django, Django REST Framework
(DRF), FastAPI and Flask. For a list of all supported providers and more details, check - [Supported Providers and Frameworks](https://omni-libraries.mukhsin.space/providers).
## 🔐 License
This project is licensed under the MIT License. See the 📚- [License](https://omni-libraries.mukhsin.space/usage/license) for more information.
---
Omni-Authify is your go-to solution for easy social login integration, whether you're building a simple python
project or scaling up with Django, DRF or other frameworks like FastAPI or Flask. Give it a spin and enjoy smooth
OAuth2
authentication!
Raw data
{
"_id": null,
"home_page": "https://github.com/Omni-Libraries/omni-authify.git",
"name": "omni-authify",
"maintainer": "Mukhsin Mukhtorov",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "mukhsinmukhtorov@arizona.edu",
"keywords": "Oauth2, facebook-login, instagram-login, twitter-login, x-login, github-login, google-login, linkedin-login, telegram-login, oauth2-django, oauth2-djangorestframework, oauth2-fastapi, oauth2-flask",
"author": "Mukhsin Mukhtorov",
"author_email": "mukhsinmukhtorov@arizona.edu",
"download_url": "https://files.pythonhosted.org/packages/06/4e/af6038de1522df34ab82e9b093316167543f9227618c80a603c6e4285ac4/omni-authify-1.1.8.tar.gz",
"platform": null,
"description": "###### <h1 align=\"center\">Simplify OAuth2 Authentication</h1>\n\n---\n<p align=\"center\">\n <a href=\"https://mukhsin-gitbook.gitbook.io/omni-authify/\">\n <img src=\"https://img.shields.io/static/v1?message=Documented%20on%20GitBook&logo=gitbook&logoColor=ffffff&label=%20&labelColor=5c5c5c&color=3F89A1\" alt=\"Documentation\"/>\n </a>\n <a href=\"https://github.com/Omni-Libraries/omni-authify.git\">\n <img src=\"https://img.shields.io/badge/Open_Source-\u2764\ufe0f-FDA599?\"/>\n </a>\n <a href=\"https://discord.gg/BQrvDpcw\">\n <img src=\"https://img.shields.io/badge/Community-Join%20Us-blueviolet\" alt=\"Community\"/>\n </a>\n <a href=\"https://github.com/Omni-Libraries/omni-authify/issues\">\n <img src=\"https://img.shields.io/github/issues/Omni-Libraries/omni-authify\" alt=\"Issues\"/>\n </a>\n <a href=\"https://pypi.org/project/omni-authify/\"> \n <img src=\"https://img.shields.io/pypi/dm/omni-authify\" alt=\"PyPI Downloads\"/>\n </a>\n <a href=\"https://pepy.tech/project/omni-authify\">\n <img src=\"https://static.pepy.tech/personalized-badge/omni-authify?period=total&units=international_system&left_color=grey&right_color=blue&left_text=Downloads\" alt=\"Total Downloads\"/>\n </a>\n</p>\n\n\n---\n<p align=\"center\">\n <a href=\"https://app.screendesk.io/recordings/new?ak=HnyR4g&key=BSlsFw&src=rria\">\n <img src=\"https://img.shields.io/badge/Submit_Issue_with_Screen_Recording-%F0%9F%93%B7-green\" alt=\"Submit Issue with Screen Recording\"/>\n </a>\n <br>\n If you're experiencing any issues or have suggestions, please record your screen and submit it <a href=\"https://app.screendesk.io/recordings/new?ak=HnyR4g&key=BSlsFw&src=rria\">here</a>! This helps us understand your problem better and resolve it more efficiently.\n</p>\n\n\n---\n\n\nOmni-Authify is a Python library that makes OAuth2 authentication a breeze across multiple frameworks and providers. Its main goal is to give you a unified and easy-to-use interface for adding social logins to your applications.\n\n\n```mermaid\nflowchart TD\n %% Value Proposition\n valueProposition[\"\ud83d\ude80 Save Your Time and Spend it with your Family\n <br/>\u23f1\ufe0f Integrate Multiple OAuth Providers in Minutes\n <br/>\ud83d\udd13 Secure, Standardized Social Login Solution\"]\n\n %% System Requirements\n subgraph Requirements [\"\ud83d\udd27 System Requirements\"]\n python[\" Python 3.8+\n \ud83d\udc0d Minimum Version\"]\n pip[\" pip 24.3.1+\n \ud83d\udce6 Package Manager\"]\n requests[\" requests>=2.32.3\n \ud83c\udf10 HTTP Library\"]\n end\n %% Providers Subgraph\n subgraph Providers [\"\ud83c\udf0d OAuth2 Providers\"]\n google[\" Google \n OAuth 2.0\n \ud83d\udce6 Client ID/Secret\"]\n facebook[\" Facebook/Instagram \n OAuth 2.0\n \ud83d\udce6 Client ID/Secret\n \ud83d\udd12 Scope: email,public_profile\"]\n twitter[\" Twitter/X \n OAuth 2.0\n \ud83d\udce6 Client ID/Secret\"]\n linkedin[\" LinkedIn \n OAuth 2.0\n \ud83d\udce6 Client ID/Secret\"]\n github[\" GitHub \n OAuth 2.0\n \ud83d\udce6 Client ID/Secret\"]\n apple[\" Apple \n OAuth 2.0\n \ud83d\udce6 Client ID/Secret\n \ud83d\udd12 Sign in with Apple\"]\n telegram[\" Telegram \n Bot Token\n \ud83d\udd11 API Token\"]\n end\n %% Frameworks Subgraph\n subgraph Frameworks [\"\ud83e\uddf0 Supported Frameworks\"]\n django[\" Django \n Version: 3+\n \ud83d\udce6 pip install omni-authify[django]\n \ud83d\udd27 Django>=4.2, <=5.1.3\"]\n djangoDRF[\" Django-DRF \n Version: 3.3+\n \ud83d\udce6 pip install omni-authify[drf]\n \ud83d\udd27 DRF>=3.12.3, <=3.15.2\"]\n fastapi[\" FastAPI \n Latest Version\n \ud83d\udce6 pip install omni-authify[fastapi]\n \ud83d\udd27 fastapi>=0.115.0\"]\n flask[\" Flask \n Latest Version\n \ud83d\udce6 pip install omni-authify[flask]\n \ud83d\udd27 Flask>=3.0.0\"]\n end\n %% Connections\n valueProposition --> Requirements\n Requirements --> Providers\n Providers --> Frameworks\n\n %% Styling\n classDef providerStyle fill:#f0f8ff,color:#003366,stroke:#6699cc,stroke-width:2px;\n classDef frameworkStyle fill:#e6f3e6,color:#004d00,stroke:#66a366,stroke-width:2px;\n classDef requirementsStyle fill:#fff0e6,color:#4d2600,stroke:#cc8533,stroke-width:2px;\n classDef valuePropositionStyle fill:#e6f2ff,color:#000080,stroke:#4169e1,stroke-width:3px,font-weight:bold;\n\n class google,facebook,twitter,linkedin,github,apple,telegram providerStyle;\n class django,djangoDRF,fastapi,flask frameworkStyle;\n class python,pip,requests requirementsStyle;\n class valueProposition valuePropositionStyle;\n```\n\n## \u2728 Features\n\n- **\ud83c\udf0d Multiple Providers**: Currently supports Facebook OAuth2 authentication, with more to come.\n- **\ud83d\udd27 Framework Integration**: Works seamlessly with Django, Django REST Framework (DRF), FastAPI and Flask.\n- **\u26a1 Easy to Use**: Requires minimal setup to get started.\n- **\ud83d\ude80 Extensible**: Designed to support more providers and frameworks as your needs grow.\n\n---\n\n## \ud83d\ude80 Usage Examples\n\nFollow the example below to quickly integrate Omni-Authify into your application.\n\n```python\nfrom omni_authify.providers import Facebook, GitHub\n\n\n# ==== Initialize the Facebook provider ====\nfacebook_provider = Facebook(\n client_id='your-client-id',\n client_secret='your-client-secret',\n redirect_uri='your-redirect-uri'\n)\n# Get authorization URL\nfacebook_auth_url = facebook_provider.get_authorization_url(state='your-state')\n# After redirect and code exchange\nfacebook_access_token = facebook_provider.get_access_token(code='authorization-code')\n# Fetch user profile\nfacebook_user_info = facebook_provider.get_user_profile(facebook_access_token, fields='your-fields')\n\n\n\n# ==== Initialize the GitHub provider ====\ngithub_provider = GitHub(\n client_id='\ud83d\udd11 your-facebook-client-id', \n client_secret='\ud83d\udd12 your-facebook-client-secret',\n redirect_uri='\ud83c\udf10 your-facebook-redirect-uri',\n scope=\"user,repo\"\n)\n# Get authorization URL\ngithub_auth_url = github_provider.get_authorization_url(state='your-state')\n# After redirect and code exchange\ngithub_access_token = github_provider.get_access_token(code='authorization-code')\n# Fetch user profile\ngithub_user_info = github_provider.get_user_profile(github_access_token)\n\n\n```\n\n---\n\n## \ud83d\udee0\ufe0f Installation Guide\n\nCheck out the full installation guide - [Installation](https://omni-libraries.mukhsin.space/installation) for detailed instructions on how to add Omni-Authify to your project.\n\n## \ud83d\udcdc Supported Providers and Frameworks\n\nOmni-Authify currently supports Facebook, GitHub OAuth2 and integrates smoothly with Django, Django REST Framework \n(DRF), FastAPI and Flask. For a list of all supported providers and more details, check - [Supported Providers and Frameworks](https://omni-libraries.mukhsin.space/providers).\n\n## \ud83d\udd10 License\n\nThis project is licensed under the MIT License. See the \ud83d\udcda- [License](https://omni-libraries.mukhsin.space/usage/license) for more information.\n\n---\n\nOmni-Authify is your go-to solution for easy social login integration, whether you're building a simple python \nproject or scaling up with Django, DRF or other frameworks like FastAPI or Flask. Give it a spin and enjoy smooth \nOAuth2 \nauthentication!\n\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python library for OAuth2 authentication across frameworks and providers",
"version": "1.1.8",
"project_urls": {
"Download": "https://github.com/Omni-Libraries/omni-authify.git",
"Homepage": "https://github.com/Omni-Libraries/omni-authify.git"
},
"split_keywords": [
"oauth2",
" facebook-login",
" instagram-login",
" twitter-login",
" x-login",
" github-login",
" google-login",
" linkedin-login",
" telegram-login",
" oauth2-django",
" oauth2-djangorestframework",
" oauth2-fastapi",
" oauth2-flask"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8cc49bb9df26ff37bcde4aa042478642dc75d7b095e743af775f4741d4c34155",
"md5": "0564366e8e980d8d78f389c892d491a0",
"sha256": "b6caebf0af68c570c69e2293ff0d1c06616d532f25325d4eaa3a84cd45788684"
},
"downloads": -1,
"filename": "omni_authify-1.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0564366e8e980d8d78f389c892d491a0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 16968,
"upload_time": "2024-12-29T15:59:08",
"upload_time_iso_8601": "2024-12-29T15:59:08.336155Z",
"url": "https://files.pythonhosted.org/packages/8c/c4/9bb9df26ff37bcde4aa042478642dc75d7b095e743af775f4741d4c34155/omni_authify-1.1.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "064eaf6038de1522df34ab82e9b093316167543f9227618c80a603c6e4285ac4",
"md5": "52e2eda7cb39f1fdce3af25aa7dc179d",
"sha256": "52dab809d422fb8c6c580caf020e19ea2c6975bf6b716ffc6b1dda1237725a12"
},
"downloads": -1,
"filename": "omni-authify-1.1.8.tar.gz",
"has_sig": false,
"md5_digest": "52e2eda7cb39f1fdce3af25aa7dc179d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 14348,
"upload_time": "2024-12-29T15:59:12",
"upload_time_iso_8601": "2024-12-29T15:59:12.021128Z",
"url": "https://files.pythonhosted.org/packages/06/4e/af6038de1522df34ab82e9b093316167543f9227618c80a603c6e4285ac4/omni-authify-1.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-29 15:59:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Omni-Libraries",
"github_project": "omni-authify",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "setuptools",
"specs": [
[
"==",
"75.6.0"
]
]
},
{
"name": "wheel",
"specs": [
[
"==",
"0.45.1"
]
]
},
{
"name": "twine",
"specs": [
[
"==",
"5.1.1"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "Flask",
"specs": [
[
"==",
"3.1.0"
]
]
},
{
"name": "fastapi",
"specs": [
[
"==",
"0.115.5"
]
]
},
{
"name": "pydantic_settings",
"specs": [
[
"==",
"2.6.1"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "django",
"specs": [
[
"==",
"5.1.4"
]
]
},
{
"name": "djangorestframework",
"specs": [
[
"==",
"3.15.2"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.10.2"
]
]
}
],
"lcname": "omni-authify"
}