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

Класс HTTPAuthorizationCredentials

Класс HTTPAuthorizationCredentials представляет собой Pydantic-модель, в которую FastAPI упаковывает данные из HTTP-заголовка Authorization при работе с зависимостью HTTPBearer. Объект этого класса автоматически создаётся FastAPI и передаётся в функцию-зависимость в качестве аргумента. Класс содержит два атрибута: scheme - название схемы авторизации (обычно 'Bearer'), и credentials - сами учётные данные (токен).

Импортируется класс из модуля fastapi.security. Обычно он используется вместе с HTTPBearer и функцией Depends или Security для проверки токена доступа.

Синтаксис

from fastapi.security import HTTPAuthorizationCredentials

Атрибуты

Класс имеет два атрибута:

scheme - строка с названием схемы авторизации, например 'Bearer'.

credentials - строка с учётными данными, то есть токен, переданный клиентом.

Пример

Давайте создадим зависимость, которая принимает объект HTTPAuthorizationCredentials и возвращает токен:

from fastapi import FastAPI, Depends from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials app = FastAPI() security = HTTPBearer() @app.get('/token') def get_token(credentials: HTTPAuthorizationCredentials = Depends(security)): return {'token': credentials.credentials}

Результат выполнения кода при передаче заголовка Authorization: Bearer abcde:

{"token": "abcde"}

Пример

Давайте выведем и схему, и сами учётные данные:

from fastapi import FastAPI, Depends from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials app = FastAPI() security = HTTPBearer() @app.get('/auth') def read_auth(credentials: HTTPAuthorizationCredentials = Depends(security)): return { 'scheme': credentials.scheme, 'credentials': credentials.credentials }

Результат выполнения кода при передаче заголовка Authorization: Bearer article:

{"scheme": "Bearer", "credentials": "article"}

Пример

Давайте проверим токен на соответствие ожидаемому значению:

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials app = FastAPI() security = HTTPBearer() @app.get('/protected') def protected(credentials: HTTPAuthorizationCredentials = Depends(security)): if credentials.credentials != 'abcde': raise HTTPException(status_code=403, detail='Invalid token') return {'message': 'hello'}

Результат выполнения кода при передаче заголовка Authorization: Bearer abcde:

{"message": "hello"}

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

  • класс HTTPBearer,
    который извлекает данные из заголовка Authorization
  • атрибут scheme,
    который хранит название схемы авторизации
  • атрибут credentials,
    который хранит токен доступа
  • функция Depends,
    которая внедряет зависимость в обработчик
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить