Класс HTTPBearer
Класс HTTPBearer применяется для извлечения
Bearer-токена из заголовка Authorization.
Он проверяет, что схема аутентификации - Bearer,
и возвращает объект HTTPAuthorizationCredentials
с полями scheme и credentials.
Первым параметром передаётся bearerFormat -
описание формата токена для документации.
Вторым параметром - auto_error, который
определяет, выбрасывать ли ошибку 403 при отсутствии токена.
Синтаксис
HTTPBearer(bearerFormat=None, auto_error=True)
Параметр bearerFormat задаёт строку с описанием
формата Bearer-токена, которая отображается в Swagger UI.
Параметр auto_error при значении True
автоматически возвращает ошибку 403, если заголовок
Authorization отсутствует или имеет неверную схему.
Пример
Давайте создадим простой эндпоинт с Bearer-аутентификацией:
from fastapi import FastAPI, Depends
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
app = FastAPI()
security = HTTPBearer()
@app.get('/protected')
def protected(credentials: HTTPAuthorizationCredentials = Depends(security)):
return {'token': credentials.credentials}
Результат выполнения кода при передаче токена abcde:
{"token": "abcde"}
Пример
Давайте проверим токен вручную и вернём ошибку при неверном значении:
Результат выполнения кода при передаче корректного токена:
{"user": "admin"}
Пример
Давайте отключим автоматическую ошибку и обработаем отсутствие токена вручную:
Результат выполнения кода при отсутствии заголовка Authorization:
{"detail": "Token required"}
Смотрите также
-
класс
HTTPAuthorizationCredentials,
который хранит схему и учётные данные из заголовка -
класс
HTTPBasic,
который реализует HTTP Basic аутентификацию -
класс
Depends,
который внедряет зависимость аутентификации в обработчик -
класс
HTTPDigest,
который реализует HTTP Digest аутентификацию