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

Атрибут username

Атрибут username принадлежит классу OAuth2PasswordRequestForm из модуля fastapi.security. Класс применяется как зависимость (через Depends) в эндпоинте выдачи токена. FastAPI автоматически разбирает тело POST-запроса с типом application/x-www-form-urlencoded и заполняет поля формы. Атрибут username хранит строку с именем пользователя, которую клиент прислал в поле username. Значение используется для поиска пользователя в базе данных и последующей проверки пароля.

Синтаксис

form_data.username

Доступ к атрибуту выполняется через объект формы, который FastAPI внедряет в функцию-обработчик. Тип значения - str.

Пример

Давайте создадим эндпоинт выдачи токена и выведем имя пользователя из формы:

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}

Отправим POST-запрос с полями формы:

curl -X POST http://127.0.0.1:8000/token \ -d "username=user&password=abcde"

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

{"username": "user"}

Пример

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

from fastapi import FastAPI, Depends, HTTPException from fastapi.security import OAuth2PasswordRequestForm app = FastAPI() users = {'user': 'abcde', 'article': 'hello'} @app.post('/token') def login(form_data: OAuth2PasswordRequestForm = Depends()): password = users.get(form_data.username) if password is None: raise HTTPException(status_code=400, detail='Incorrect username') return {'access_token': password, 'token_type': 'bearer'}

Отправим POST-запрос с корректным именем:

curl -X POST http://127.0.0.1:8000/token \ -d "username=user&password=abcde"

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

{"access_token": "abcde", "token_type": "bearer"}

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

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