РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
230 of 307 menu

Класс HTTPBasic

Класс HTTPBasic применяется как зависимость в параметрах маршрута FastAPI и отвечает за базовую HTTP-аутентификацию. Он читает заголовок Authorization типа Basic, декодирует пару логин-пароль из Base64 и возвращает объект HTTPBasicCredentials. Первым параметром передаётся scheme_name - имя схемы для документации, вторым - realm - область аутентификации, третьим - auto_error - флаг автоматической ошибки 401.

Синтаксис

HTTPBasic(scheme_name='HTTPBasic', realm=None, auto_error=True)

Пример

Давайте создадим зависимость на основе HTTPBasic и защитим маршрут:

from fastapi import FastAPI, Depends from fastapi.security import HTTPBasic, HTTPBasicCredentials app = FastAPI() security = HTTPBasic() @app.get('/user') def user(credentials: HTTPBasicCredentials = Depends(security)): return {'username': credentials.username}

Результат выполнения кода при верных учётных данных:

{"username": "abcde"}

Пример

Давайте проверим логин и пароль вручную и вернём ошибку 401 при неверных данных:

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import HTTPBasic, HTTPBasicCredentials app = FastAPI() security = HTTPBasic() @app.get('/article') def article(credentials: HTTPBasicCredentials = Depends(security)): if credentials.username != 'user' or credentials.password != 'abcde': raise HTTPException(status_code=401, detail='Incorrect credentials') return {'text': 'hello'}

Результат выполнения кода при верных учётных данных:

{"text": "hello"}

Смотрите также

  • класс HTTPBasicCredentials,
    который хранит логин и пароль пользователя
  • класс HTTPBearer,
    который извлекает Bearer-токен из заголовка
  • класс OAuth2PasswordBearer,
    который реализует OAuth2-аутентификацию по паролю
  • функция Depends,
    которая внедряет зависимость в маршрут
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить