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

Класс APIKeyCookie

Класс APIKeyCookie применяется для аутентификации пользователей по API-ключу, который передаётся в cookie. Он наследуется от класса APIKeyBase и является частным случаем извлечения ключа из определённого места запроса. Конструктор принимает обязательный параметр name - имя cookie, в котором ожидается ключ. Также можно указать необязательные параметры scheme_name и auto_error. Класс используется в связке с Security или Depends.

Синтаксис

from fastapi.security import APIKeyCookie api_key = APIKeyCookie(name, scheme_name=None, auto_error=True)

Пример

Давайте создадим простой обработчик, который проверяет наличие API-ключа в cookie:

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import APIKeyCookie app = FastAPI() api_key = APIKeyCookie(name="session_token") @app.get('/items/') def read_items(token: str = Depends(api_key)): if token != "abcde": raise HTTPException(status_code=403, detail="Invalid token") return {"token": token}

При запросе к /items/ с cookie session_token=abcde результат выполнения кода:

{"token": "abcde"}

Пример

Давайте зададим кастомное имя схемы и отключим автоматическую ошибку, чтобы обрабатывать отсутствие ключа вручную:

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import APIKeyCookie app = FastAPI() api_key = APIKeyCookie( name="api_key", scheme_name="MyCookieAuth", auto_error=False ) @app.get('/users/') def read_users(token: str = Depends(api_key)): if not token: return {"message": "No token provided"} return {"token": token}

Результат выполнения кода для запроса без cookie:

{"message": "No token provided"}

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

  • класс APIKeyHeader,
    который извлекает API-ключ из заголовка запроса
  • класс APIKeyQuery,
    который извлекает API-ключ из query-параметров
  • функция Security,
    которая используется для внедрения зависимостей аутентификации
  • функция Depends,
    которая внедряет зависимость в обработчик маршрута
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить