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

Атрибут scope

Атрибут scope принадлежит классу OAuth2PasswordRequestForm. Класс применяется как зависимость в обработчике, принимающем данные формы OAuth2. Помимо username и password, форма может содержать поле scope. После разбора формы значение этого поля доступно через атрибут scope. Атрибут хранит строку, в которой права доступа перечислены через пробел, например 'items read'. Если клиент не передал поле, атрибут содержит пустую строку.

Синтаксис

form.scope

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

Пример

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

from fastapi import FastAPI, Depends from fastapi.security import OAuth2PasswordRequestForm app = FastAPI() @app.post('/token') def login(form: OAuth2PasswordRequestForm = Depends()): return { 'username': form.username, 'scope': form.scope }

Отправим форму с полем scope:

curl -X POST http://127.0.0.1:8000/token -d 'username=user&password=abcde&scope=items%20read'

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

{"username": "user", "scope": "items read"}

Пример

Давайте разберём строку прав доступа на отдельные элементы:

from fastapi import FastAPI, Depends from fastapi.security import OAuth2PasswordRequestForm app = FastAPI() @app.post('/token') def login(form: OAuth2PasswordRequestForm = Depends()): scopes = form.scope.split() return { 'username': form.username, 'scopes': scopes }

Отправим форму с несколькими правами доступа:

curl -X POST http://127.0.0.1:8000/token -d 'username=user&password=abcde&scope=items%20read%20write'

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

<+python+> {"username": "user", "scopes": ["items", "read", "write"]} <-python+>

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

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