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

Атрибут scopes

Атрибут scopes относится к классу SecurityScopes и представляет собой список строк. В него FastAPI автоматически собирает все области доступа, которые были указаны в параметре scopes функции Security для текущего маршрута. Этот атрибут доступен внутри зависимости безопасности и позволяет проверить, какие именно права требует эндпоинт. Атрибут доступен только для чтения и заполняется фреймворком перед вызовом зависимости.

Синтаксис

security_scopes.scopes

Пример

Давайте создадим зависимость, которая выводит список требуемых областей доступа:

from fastapi import FastAPI, Security, Depends from fastapi.security import SecurityScopes, OAuth2PasswordBearer app = FastAPI() oauth2_scheme = OAuth2PasswordBearer(tokenUrl='token') def get_current_user(security_scopes: SecurityScopes): return {'required_scopes': security_scopes.scopes} @app.get('/items/') def read_items( user: dict = Security(get_current_user, scopes=['items:read', 'items:write']) ): return user

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

{"required_scopes": ["items:read", "items:write"]}

Пример

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

from fastapi import FastAPI, Security, HTTPException from fastapi.security import SecurityScopes, OAuth2PasswordBearer app = FastAPI() oauth2_scheme = OAuth2PasswordBearer(tokenUrl='token') def get_current_user(security_scopes: SecurityScopes): user_scopes = ['items:read'] for scope in security_scopes.scopes: if scope not in user_scopes: raise HTTPException(status_code=403, detail='Not enough permissions') return {'scopes': security_scopes.scopes} @app.get('/items/') def read_items( user: dict = Security(get_current_user, scopes=['items:read']) ): return user

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

{"scopes": ["items:read"]}

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

  • класс SecurityScopes,
    который хранит области доступа текущего запроса
  • атрибут scope_str,
    который возвращает области доступа в виде строки
  • функция Security,
    которая объявляет зависимость с требуемыми областями доступа
  • параметр scopes,
    который задаёт список областей доступа для зависимости
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить