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

Метод __call__

Метод __call__ применяется к экземпляру класса OAuth2PasswordBearer и делает его вызываемым как зависимость. При вызове метод принимает объект Request, извлекает из заголовка Authorization схему и токен, проверяет корректность схемы Bearer и возвращает строку с токеном. Если заголовок отсутствует или схема неверна, метод выбрасывает исключение HTTPException с кодом 401, если атрибут auto_error равен True.

Синтаксис

oauth2_scheme(request)

Пример

Давайте создадим экземпляр OAuth2PasswordBearer и используем его как зависимость в маршруте:

from fastapi import FastAPI, Depends from fastapi.security import OAuth2PasswordBearer app = FastAPI() oauth2_scheme = OAuth2PasswordBearer(tokenUrl='token') @app.get('/items/') def read_items(token: str = Depends(oauth2_scheme)): return {'token': token}

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

{"token": "abcde"}

Пример

Давайте вручную вызовем метод __call__ через экземпляр oauth2_scheme, передав объект Request:

<+python+> from fastapi import FastAPI, Request from fastapi.security import OAuth2PasswordBearer app = FastAPI() oauth2_scheme = OAuth2PasswordBearer(tokenUrl='token') @app.get('/items/') async def read_items(request: Request): token = await oauth2_scheme(request) return {'token': token} <-python+>

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

{"token": "abcde"}

Пример

Давайте обработаем ситуацию, когда заголовок Authorization отсутствует. Метод выбросит исключение HTTPException:

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import OAuth2PasswordBearer app = FastAPI() oauth2_scheme = OAuth2PasswordBearer(tokenUrl='token') @app.get('/items/') def read_items(token: str = Depends(oauth2_scheme)): return {'token': token}

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

{"detail": "Not authenticated"}

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

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