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

Класс OAuth2

Класс OAuth2 применяется для описания OAuth2-потока в приложении FastAPI. Он является базовым классом для схем OAuth2PasswordBearer и OAuth2AuthorizationCodeBearer. Первым параметром передаётся flows - объект с описанием доступных OAuth2-потоков. Вторым необязательным параметром передаётся scheme_name - имя схемы в OpenAPI. Третьим необязательным параметром передаётся description - текстовое описание схемы.

Синтаксис

from fastapi.security import OAuth2 OAuth2(flows, scheme_name=None, description=None, auto_error=True)

Пример

Давайте создадим схему OAuth2 с парольным потоком и повесим её на маршрут через Depends:

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

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

{"token": "abcde"}

Пример

Давайте создадим схему OAuth2 напрямую с несколькими потоками и передадим её в зависимость:

from fastapi import FastAPI, Depends from fastapi.security import OAuth2 from fastapi.openapi.models import OAuthFlows, OAuthFlowPassword app = FastAPI() flows = OAuthFlows( password=OAuthFlowPassword(tokenUrl='token') ) oauth2_scheme = OAuth2(flows=flows, scheme_name='MyOAuth2') @app.get('/user') def user(credentials: str = Depends(oauth2_scheme)): return {'credentials': credentials}

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

{"credentials": "abcde"}

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

  • класс OAuth2PasswordBearer,
    который реализует парольный OAuth2-поток
  • класс OAuth2AuthorizationCodeBearer,
    который реализует поток authorization code
  • класс OAuth2PasswordRequestForm,
    который принимает форму логина и пароля
  • функция Depends,
    которая внедряет зависимость в обработчик
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить