Класс OAuth2PasswordRequestForm
Класс OAuth2PasswordRequestForm применяется
в качестве зависимости в маршруте FastAPI.
Он извлекает данные из тела POST-запроса
с типом содержимого
application/x-www-form-urlencoded
и представляет их в виде объекта с атрибутами
username, password,
scope, client_id,
client_secret и grant_type.
Первым параметром конструктора передаётся
объект запроса, который FastAPI подставляет
автоматически при объявлении зависимости.
Обычно этот класс используют в эндпоинте,
выдающем токен доступа, вместе с
OAuth2PasswordBearer.
Синтаксис
OAuth2PasswordRequestForm(
request,
grant_type=None,
username=None,
password=None,
scope="",
client_id=None,
client_secret=None
)
Атрибуты
Объект формы хранит следующие атрибуты:
-
username- имя пользователя -
password- пароль пользователя -
scope- строка с перечнем запрашиваемых областей доступа -
client_id- идентификатор клиента -
client_secret- секрет клиента -
grant_type- тип предоставления доступа
Пример
Давайте объявим форму как зависимость в маршруте и вернём имя пользователя:
from fastapi import FastAPI, Depends
from fastapi.security import OAuth2PasswordRequestForm
app = FastAPI()
@app.post('/token')
def login(form_data: OAuth2PasswordRequestForm = Depends()):
return {'username': form_data.username}
Результат выполнения кода для формы
с полем username равным 'user':
{"username": "user"}
Пример
Давайте вместе с формой используем
OAuth2PasswordBearer и вернём токен
доступа:
Результат выполнения кода для формы
с полем username равным 'user':
Пример
Давайте прочитаем атрибут scope
и разберём его в список областей доступа:
Результат выполнения кода для формы
с полем scope равным 'read write':
Смотрите также
-
класс
OAuth2PasswordBearer,
который извлекает токен из заголовка Authorization -
атрибут
username,
который хранит имя пользователя из формы -
атрибут
password,
который хранит пароль пользователя из формы -
атрибут
scope,
который хранит строку с областями доступа