Skip to main content

Simplify OAuth2 Authentication


Documentation Community Issues PyPI Downloads Total Downloads


Submit Issue with Screen Recording
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!

Metadata

Release files for omni-authify 1.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omni-authify 1.1.8
File Size Uploaded Provenance Actions
omni-authify-1.1.8.tar.gz 14.3 kB Without provenance Details for omni-authify-1.1.8.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for omni-authify 1.1.8
File Interpreter ABI Platform Actions
omni_authify-1.1.8-py3-none-any.whl Python 3 none any Details for omni_authify-1.1.8-py3-none-any.whl

Total release size: 31.3 kB

Release files / omni-authify-1.1.8.tar.gz

Download URL omni-authify-1.1.8.tar.gz
Size 14.3 kB
Tags Source
SHA-256 checksum
How to use checksums
52dab809d422fb8c6c580caf020e19ea2c6975bf6b716ffc6b1dda1237725a12
BLAKE2b-256 checksum
How to use checksums
064eaf6038de1522df34ab82e9b093316167543f9227618c80a603c6e4285ac4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.8.18

Release files / omni_authify-1.1.8-py3-none-any.whl

Download URL omni_authify-1.1.8-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b6caebf0af68c570c69e2293ff0d1c06616d532f25325d4eaa3a84cd45788684
BLAKE2b-256 checksum
How to use checksums
8cc49bb9df26ff37bcde4aa042478642dc75d7b095e743af775f4741d4c34155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.8.18

Security for omni-authify 1.1.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page