Skip to main content

Python module to add username and password authentication to specific FastAPI routes

Project description

FastAPIUIAuth

Python module to add username and password authentication to specific FastAPI routes

Python

Platform Supported

Platform

Deployments

pypi

Pypi Pypi-format Pypi-status

Installation

pip install FastAPI-UI-Auth

Usage

import logging
import uiauth

from fastapi import FastAPI
from fastapi.routing import APIRoute

app = FastAPI()

@app.get("/public")
async def public_route():
    return {"message": "This is a public route"}

async def private_route():
    return {"message": "This is a private route"}

uiauth.protect(
    # ------ MANDATORY ARGS ------
    app=app,
    routes=APIRoute(
        path="/private",
        endpoint=private_route
    ),
    username="admin",
    password="password123",
    # ------ OPTIONAL ARGS ------
    totp_token="JBSWSECUREDK3PXP",
    session_timeout=3600,
    fallback=uiauth.Fallback(button="GO BACK", path="/public"),
    custom_logger=logging.getLogger("my_custom_logger")
)

FastAPI-UI-Auth supports both APIRoute and APIWebSocketRoute routes.
Refer samples directory for different use-cases.

[!NOTE] Use the CLI command uiauth-totp to generate a TOTP token and a QR code to scan with an authenticator app (e.g. Google Authenticator, Authy, etc.) for 2FA support.

Coding Standards

Docstring format: Google
Styling conventions: PEP 8 and isort

Release Notes

Requirement

python -m pip install gitverse

Usage

gitverse-release reverse -f release_notes.rst -t 'Release Notes'

Linting

Requirement

python -m pip install sphinx==5.1.1 pre-commit recommonmark

Usage

pre-commit run --all-files

Pypi Package

pypi-module

https://pypi.org/project/FastAPI-UI-Auth/

License & copyright

© Vignesh Rao

Licensed under the MIT License

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

fastapi_ui_auth-0.4.0-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_ui_auth-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_ui_auth-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a2df0223602cf45061a0192048a67323f3edff30dc046316d8d6b9efac5decd6
MD5 de5d63ba4a2ec031e11ada3dcc6f46e6
BLAKE2b-256 cd3f3466e73815b383bbc8805829159152abd4c77d070cf185133d31ec91469e

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