Запустим сервер используя команду uvicorn app.main:app --reload и откроем документацию. И мы увидим конечную точку Login.
Попробуем отправить запрос, введя валидные параметры в поле username и password:
Добавим конечную точку в файле auth.py, у которой будет установлена зависимость от oauth2_scheme
@router.get('/read_current_user')
async def read_current_user(user: User = Depends(oauth2_scheme)):
return user
И посмотрим на изменения документации. Во первых у нас появится кнопка авторизации:
А во вторых у этой конечной точки появится значок закрытого замочка.
Нажмем на кнопку «Authorize» в правом верхнем углу документации. Кнопка вызовет появление встроенной формы входа, показанной на скриншоте ниже, которую мы можем использовать для тестирования нашего кода:
Мы видим, что форма входа OAuth2 обнаруживает правильный URL-адрес токена, указанный в экземпляре OAuth2PasswordBearer. Параметр Flow или grant_type, указанный в форме входа, должен быть «password». После регистрации проверенных учетных данных кнопка «Authorize» перенаправит пользователя на окно, показанное на скриншоте ниже, в котором предложит пользователю выйти из системы или продолжить авторизованный доступ
Более того, вы заметите, что значок замка в защищенной конечной точки API стал закрыт. Это указывает на то, что эта конечная точка готова к выполнению, поскольку пользователь уже прошел аутентификацию:
Попробуем выполнить запрос:
В следующем шаге мы добавим технологию JWT к реализации нашей авторизации.