Включение аутентификации по ключу API в FastAPI для всех конечных точек, кроме / и конечной точки проверки работоспособнPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Включение аутентификации по ключу API в FastAPI для всех конечных точек, кроме / и конечной точки проверки работоспособн

Сообщение Anonymous »

Я хочу реализовать базовую аутентификацию по ключу API для всех конечных точек моего приложения FastAPI, за исключением / и /health.
Я собирался это сделать с использованием промежуточного программного обеспечения, например

Код: Выделить всё

@app.middleware("http")
async def validate_api_key(request, call_next):
if is_production():
api_key = request.headers.get("X-API-KEY")
if api_key != settings.API_KEY:
raise HTTPException(
status_code=401, detail="Unauthorized"
)
response = await call_next(request)
return response
Однако это применимо ко всем конечным точкам, включая / и /health.
Следующее, что я прочитал, было то, что я могу использовать SubApps, но это для меня на самом деле не имеет смысла иметь / и /health в одном приложении, а затем все остальные конечные точки в другом приложении. Потому что не похоже, что вы можете смонтировать их с одним и тем же префиксом.
Другим способом было добавить его для каждой конечной точки с использованием зависимостей, например

Код: Выделить всё

@app.get("/protected", dependencies=[Depends(api_key_auth)])
Взято из https://testdriven.io/tips/6840e037-4b8 ... 3fb1c69eb/
Но включать его для каждой функции конечной точки кажется обременительным. что я пишу.
Есть ли лучший способ просто выполнить простую аутентификацию по ключу API для большинства конечных точек?

Подробнее здесь: https://stackoverflow.com/questions/762 ... thcheck-en
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»