API -Basis -Authentifizierungspaket für Fastapi, der sich auf Einfachheit und Benutzerfreundlichkeit konzentriert:
sqlite oder postgres -Datenbank -Backend, der sowohl mit Header- als auch mit Abfrageparametern arbeitetexample.env , um anzuzeigen, wie Umgebungsvariablen verwendet werden.README.md um Änderungen widerzuspiegeln.mysql Database. pip install fastapi_auth2
from fastapi import Depends , FastAPI
from fastapi_auth import api_key_router , api_key_security
app = FastAPI (
description = "FastAPI Auth is a package that provides authentication based API security with FastAPI and Postgres Database, SQLite Database or MongoDB Database" ,
title = "FastAPI Auth Example" ,
version = 1.0 ,
)
app . include_router ( api_key_router , prefix = "/auth" , tags = [ "_auth" ])
@ app . get ( "/unsecure" )
async def unsecure_endpoint ():
return { "message" : "This is a unsecure endpoint" }
@ app . get ( "/secure" , dependencies = [ Depends ( api_key_security )])
async def secure_endpoint ():
return { "message" : "This is a secure endpoint" }Resultierende App ist:

Starten Sie Ihre API und überprüfen Sie die Protokolle auf den automatisch generierten geheimen Schlüssel, wenn Sie keine durch Umgebungsvariablen bereitgestellt haben.

Gehen Sie zu /docs auf Ihrer API und informieren Sie diesen geheimen Schlüssel in der Authorize/Secret header -Box. Alle Administratorendpunkte unterstützen nur die Headersicherheit, um sicherzustellen, dass der geheime Schlüssel beim Teilen einer URL nicht versehentlich geteilt wird.

Dann können Sie /auth/new verwenden, um einen neuen API -Schlüssel zu generieren.

Und schließlich können Sie diesen API -Schlüssel verwenden, um auf den sicheren Endpunkt zuzugreifen.

Sie können natürlich die API -Schlüsselakquisition über Python mit requests automatisieren und die Endpunkte direkt abfragen.
Wenn Sie dies tun, können Sie die Endpunkte Ihrer API -Dokumentation mit der Umgebungsvariablen FASTAPI_AUTH_HIDE_DOCS ausblenden.
Umgebungsvariablen:
FASTAPI_AUTH_SECRET : Secret Administratorschlüssel
FASTAPI_AUTH_HIDE_DOCS : Ob Sie die api -Schlüsselendpunkte aus der Dokumentation verbergen sollen oder nicht
FASTAPI_AUTH_DB_LOCATION : Speicherort der lokalen SQLite -Datenbankdatei
sqlite.db im laufenden Verzeichnis standardmäßig FASTAPI_AUTH_AUTOMATIC_EXPIRATION : Dauer in Tagen, bis ein API -Schlüssel als abgelaufen ist
DATABASE_MODE : Wenn auf postgres festgelegt wird, verwendet das Paket eine Postgres -Datenbank anstelle von SQLite
URI : Ort der Postgres -Datenbank
postgresql://postgres:postgres@localhost:5432/postgres standardmäßigDEV_MODE auf False eingestellt ist Weitere Informationen finden Sie CONTIBUTING.md .
poetry install
poetry shellpre-commit installpytest Das angehängte Docker -Bild führt eine Test -App auf localhost:8080 mit geheimen Schlüssel TEST_SECRET aus. Führen Sie es mit:
docker-compose build && docker-compose up