A Python library for OAuth2 authentication across frameworks and providers
Project description
Simplify OAuth2 Authentication
If you're experiencing any issues or have suggestions, please record your screen and submit it here! This helps us understand your problem better and resolve it more efficiently.
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.
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.
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 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.
๐ License
This project is licensed under the MIT License. See the ๐- 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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omni-authify-1.1.8.tar.gz.
File metadata
- Download URL: omni-authify-1.1.8.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52dab809d422fb8c6c580caf020e19ea2c6975bf6b716ffc6b1dda1237725a12
|
|
| MD5 |
52e2eda7cb39f1fdce3af25aa7dc179d
|
|
| BLAKE2b-256 |
064eaf6038de1522df34ab82e9b093316167543f9227618c80a603c6e4285ac4
|
File details
Details for the file omni_authify-1.1.8-py3-none-any.whl.
File metadata
- Download URL: omni_authify-1.1.8-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6caebf0af68c570c69e2293ff0d1c06616d532f25325d4eaa3a84cd45788684
|
|
| MD5 |
0564366e8e980d8d78f389c892d491a0
|
|
| BLAKE2b-256 |
8cc49bb9df26ff37bcde4aa042478642dc75d7b095e743af775f4741d4c34155
|