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

Атрибут scopes

Атрибут scopes принадлежит классу OAuth2PasswordBearer и хранит словарь областей доступа (scopes) OAuth2. Ключи словаря - это названия областей, а значения - их человекочитаемые описания. FastAPI использует этот атрибут при построении схемы безопасности в OpenAPI, чтобы клиенты и документация знали, какие области доступа поддерживает приложение. Сам атрибут не выполняет проверку прав - он лишь описывает доступные области. Проверку областей доступа выполняет зависимость Security совместно с параметром scopes.

Синтаксис

oauth2_scheme = OAuth2PasswordBearer( tokenUrl='token', scopes={'scope_name': 'scope description'} )

После создания экземпляра словарь областей доступен через атрибут scopes:

oauth2_scheme.scopes

Пример

Давайте создадим схему OAuth2PasswordBearer с двумя областями доступа и посмотрим, что хранит атрибут scopes:

from fastapi import FastAPI from fastapi.security import OAuth2PasswordBearer app = FastAPI() oauth2_scheme = OAuth2PasswordBearer( tokenUrl='token', scopes={ 'user': 'read user info', 'admin': 'manage resources' } ) @app.get('/') def index(): return {'scopes': oauth2_scheme.scopes}

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

{"scopes": {"user": "read user info", "admin": "manage resources"}}

Пример

Давайте используем области доступа из атрибута scopes вместе с зависимостью Security для ограничения маршрута:

from fastapi import FastAPI, Depends from fastapi.security import OAuth2PasswordBearer, SecurityScopes app = FastAPI() oauth2_scheme = OAuth2PasswordBearer( tokenUrl='token', scopes={ 'user': 'read user info', 'admin': 'manage resources' } ) @app.get('/items/') def read_items( security_scopes: SecurityScopes, token: str = Depends(oauth2_scheme) ): return { 'token': token, 'required_scopes': security_scopes.scopes }

При обращении к маршруту FastAPI сверит запрошенные области доступа со словарём, переданным в атрибут scopes при создании схемы.

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

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