Атрибут tokenUrl
Атрибут tokenUrl класса OAuth2PasswordBearer хранит строку с адресом эндпоинта,
относительно которого клиент получает токен доступа по схеме OAuth2 Password Flow.
Значение задаётся первым параметром при создании экземпляра класса и автоматически
попадает в OpenAPI-схему в раздел securitySchemes.
Через этот адрес документация Swagger UI показывает кнопку Authorize и отправляет
учётные данные пользователя для обмена на access token.
Синтаксис
OAuth2PasswordBearer(tokenUrl)
Пример
Давайте создадим экземпляр OAuth2PasswordBearer и выведем значение атрибута tokenUrl:
from fastapi import FastAPI
from fastapi.security import OAuth2PasswordBearer
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl='token')
@app.get('/token-url')
def get_token_url():
return {'tokenUrl': oauth2_scheme.tokenUrl}
Результат выполнения кода для адреса /token-url:
{"tokenUrl": "token"}
Пример
Давайте укажем полный URL-адрес эндпоинта выдачи токена и защитим маршрут с помощью зависимости:
Результат выполнения кода для адреса /users/me с заголовком Authorization: Bearer abcde:
{"token": "abcde"}
Пример
Давайте посмотрим, как значение tokenUrl попадает в OpenAPI-схему приложения:
Результат выполнения кода для адреса /openapi-token-url:
{"tokenUrl": "auth/token"}
Смотрите также
-
класс
OAuth2PasswordBearer,
который реализует OAuth2 Password Flow в FastAPI -
метод
call,
который извлекает токен из заголовка Authorization -
атрибут
scheme_name,
который задаёт имя схемы безопасности в OpenAPI -
класс
OAuth2PasswordRequestForm,
который принимает логин и пароль на эндпоинте токена