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

Параметр scopes

Параметр scopes применяется в функциях безопасности FastAPI, таких как Security и Depends, для указания списка областей доступа OAuth2. Он представляет собой список строк, каждая из которых описывает отдельное разрешение, например 'items:read' или 'users:write'. При вызове защищённого маршрута FastAPI проверяет, что токен пользователя содержит все запрошенные области доступа.

Синтаксис

Security(dependency, scopes=['scope1', 'scope2'])

Пример

Давайте создадим приложение с OAuth2-схемой и защитим маршрут, требующий область доступа 'items:read':

from fastapi import FastAPI, Security from fastapi.security import OAuth2PasswordBearer app = FastAPI() oauth2_scheme = OAuth2PasswordBearer( tokenUrl='token', scopes={'items:read': 'Read items'} ) @app.get('/items/') def read_items( token: str = Security(oauth2_scheme, scopes=['items:read']) ): return {'token': token}

При запросе к маршруту /items/ FastAPI проверит, что токен содержит область доступа 'items:read'. Если области нет, вернётся ошибка 403.

Пример

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

from fastapi import FastAPI, Security from fastapi.security import OAuth2PasswordBearer app = FastAPI() oauth2_scheme = OAuth2PasswordBearer( tokenUrl='token', scopes={ 'items:read': 'Read items', 'items:write': 'Write items' } ) @app.post('/items/') def create_item( token: str = Security( oauth2_scheme, scopes=['items:read', 'items:write'] ) ): return {'token': token}

Пользователь должен обладать обеими областями доступа, чтобы получить доступ к маршруту.

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

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