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

Атрибут scope_str

Атрибут scope_str принадлежит классу SecurityScopes из модуля fastapi.security. Он хранит строковое представление всех требуемых scope, переданных в зависимость через Security. Значение формируется автоматически при создании экземпляра SecurityScopes и представляет собой список scope, объединённых через запятую с пробелом. Атрибут удобно использовать в сообщениях об ошибках доступа, когда нужно показать клиенту, какие именно права требуются.

Синтаксис

security_scopes.scope_str

Пример

Давайте создадим зависимость, которая принимает объект SecurityScopes и возвращает его атрибут scope_str:

from fastapi import FastAPI, Security from fastapi.security import SecurityScopes app = FastAPI() def get_scopes(security_scopes: SecurityScopes): return {'scope_str': security_scopes.scope_str} @app.get('/items') def read_items(data: dict = Security(get_scopes, scopes=['items:read', 'items:write'])): return data

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

{"scope_str": "items:read items:write"}

Пример

Давайте используем атрибут scope_str в тексте исключения, чтобы показать, какие права нужны пользователю:

from fastapi import FastAPI, Security, HTTPException from fastapi.security import SecurityScopes app = FastAPI() def verify_scopes(security_scopes: SecurityScopes): if security_scopes.scopes: raise HTTPException( status_code=403, detail=f'Not enough permissions. Required: {security_scopes.scope_str}' ) return {'access': 'granted'} @app.get('/admin') def read_admin(data: dict = Security(verify_scopes, scopes=['admin:read'])): return data

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

<+python+> {"detail": "Not enough permissions. Required: admin:read"} <-python+>

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

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