Как изменить формат токена в приложении, используя FastAPI?

Добрый день! У меня возник вопрос по использованию `OAuth2PasswordBearer` с настройкой `tokenUrl` для аутентификации. Даже после возврата {"access_token": токен, "token_type": ""} где-то автоматически добавляется "Bearer" в заголовок. Мои требования таковы: <br/> 1) Необходимо, чтобы авторизация работала в /docs <br/> 2) Желательно, чтобы формат токена в заголовке был не <b>Authorization: Bearer Token</b>, а <b>Authorization: Token</b>. Как можно достичь такой настройки?
  • 8 марта 2024 г. 18:58
Ответы на вопрос 1
Для изменения формата токена в приложении FastAPI, можно создать кастомный класс, который наследуется от `OAuth2PasswordBearer`. Затем можно переопределить метод `verify_token` для изменения формата заголовка авторизации.

Пример кода:

```python
from fastapi.security import OAuth2PasswordBearer
from starlette.requests import Request

class CustomOAuth2PasswordBearer(OAuth2PasswordBearer):
    async def verify_token(self, token: str, request: Request):
        return token

oauth2_scheme = CustomOAuth2PasswordBearer(tokenUrl="token")

# Далее при использовании oauth2_scheme в зависимостях пути FastAPI, будет использоваться кастомный класс для проверки токена
```

Теперь при передаче токена в заголовке, формат будет следующим: `Authorization: Token`.

Надеюсь, это поможет вам достичь необходимого формата токена в приложении FastAPI. Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, пожалуйста, дайте знать.
Похожие вопросы