Skip to main content

A Python library for OAuth2 authentication across frameworks and providers

Project description

Simplify OAuth2 Authentication


Documentation Open Source Community PyPI 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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omni-authify-0.1.5.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omni_authify-0.1.5-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file omni-authify-0.1.5.tar.gz.

File metadata

  • Download URL: omni-authify-0.1.5.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.8.18

File hashes

Hashes for omni-authify-0.1.5.tar.gz
Algorithm Hash digest
SHA256 cce629c7a3a61498f3eb7f043894b003204e2928537af32ab2c44ed6769ae6a5
MD5 4a9e738a8d8af884252a95a76adffcdb
BLAKE2b-256 b26abf57b54263525dc43473e2b3c2049736b72bb31c766b4e60338bdf34e201

See more details on using hashes here.

File details

Details for the file omni_authify-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: omni_authify-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.8.18

File hashes

Hashes for omni_authify-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5ede08d22c09964a416fc40b25f8efd7cd21556dd3235d4a9dc52a583dd7a37d
MD5 9c3301168a92ff9d46fbab2008c8aea1
BLAKE2b-256 a335dfe3b8c9b46b885176049b91c62592c7706c25e6cb7bbde5827cdf098993

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page