Paket Otentikasi Berbasis Kunci API untuk FastAPI, berfokus pada kesederhanaan dan kemudahan penggunaan:
sqlite atau postgres lokal, bekerja dengan parameter header dan kueriexample.env untuk menunjukkan cara menggunakan variabel lingkungan.README.md yang diperbarui untuk mencerminkan perubahan.mysql . 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" }Aplikasi yang dihasilkan adalah:

Mulai API Anda dan periksa log untuk kunci rahasia yang dihasilkan secara otomatis jika Anda tidak memberikannya melalui variabel lingkungan.

Pergi ke /docs di API Anda dan informasikan kunci rahasia ini di kotak Authorize/Secret header . Semua titik akhir administrator hanya mendukung keamanan header untuk memastikan kunci rahasia tidak secara tidak sengaja dibagikan saat berbagi URL.

Kemudian, Anda dapat menggunakan /auth/new untuk menghasilkan kunci API baru.

Dan akhirnya, Anda dapat menggunakan kunci API ini untuk mengakses titik akhir yang aman.

Anda tentu saja dapat mengotomatiskan akuisisi kunci API melalui Python dengan requests dan secara langsung menanyakan titik akhir.
Jika Anda melakukannya, Anda dapat menyembunyikan titik akhir dari dokumentasi API Anda dengan variabel lingkungan FASTAPI_AUTH_HIDE_DOCS .
Variabel Lingkungan:
FASTAPI_AUTH_SECRET : Kunci Administrator Rahasia
FASTAPI_AUTH_HIDE_DOCS : Apakah untuk menyembunyikan titik akhir terkait kunci API dari dokumentasi atau tidak
FASTAPI_AUTH_DB_LOCATION : Lokasi file database SQLite lokal
sqlite.db di direktori berjalan secara default FASTAPI_AUTH_AUTOMATIC_EXPIRATION : durasi, dalam beberapa hari, sampai kunci API dianggap kedaluwarsa
DATABASE_MODE : Jika diatur ke postgres , paket akan menggunakan database postgres alih -alih sqlite
URI : Lokasi database Postgres
postgresql://postgres:postgres@localhost:5432/postgres secara defaultDEV_MODE diatur ke False Lihat CONTIBUTING.md untuk informasi lebih lanjut.
poetry install
poetry shellpre-commit installpytest Gambar Docker terlampir menjalankan aplikasi uji di localhost:8080 dengan TEST_SECRET Kunci Rahasia. Jalankan dengan:
docker-compose build && docker-compose up