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

Атрибут credentials

Атрибут credentials принадлежит классу HTTPAuthorizationCredentials и хранит строку с учётными данными, извлечёнными из заголовка Authorization. Объект этого класса FastAPI создаёт автоматически, когда зависимость HTTPBearer разбирает входящий запрос. Атрибут содержит ту часть заголовка, которая идёт после схемы авторизации. Например, для заголовка 'Authorization: Bearer abcde' атрибут credentials будет равен 'abcde'.

Атрибут доступен только для чтения и представляет собой строку. Чаще всего в нём лежит JWT-токен, который затем проверяется вручную или с помощью сторонних библиотек.

Синтаксис

credentials: str

Пример

Давайте создадим зависимость на основе HTTPBearer и выведем значение атрибута credentials:

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

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

{"credentials": "abcde"}

Пример

Давайте проверим токен из атрибута credentials и вернём признак валидности:

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials app = FastAPI() security = HTTPBearer() @app.get('/user') def user(creds: HTTPAuthorizationCredentials = Depends(security)): if creds.credentials != 'abcde': raise HTTPException(status_code=401, detail='invalid token') return {'token': creds.credentials, 'valid': True}

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

{"token": "abcde", "valid": true}

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

{"detail": "invalid token"}

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

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