fastapi/docs/ru/docs/how-to/authentication-error-status...

1.8 KiB
Raw Blame History

Использование старых статус-кодов ошибок аутентификации 403

До версии FastAPI 0.122.0, когда встроенные утилиты безопасности возвращали ошибку клиенту после неудачной аутентификации, они использовали HTTP статус-код 403 Forbidden.

Начиная с версии FastAPI 0.122.0, используется более подходящий HTTP статус-код 401 Unauthorized, и в ответе возвращается имеющий смысл HTTP-заголовок WWW-Authenticate в соответствии со спецификациями HTTP, RFC 7235, RFC 9110.

Но если по какой-то причине ваши клиенты зависят от старого поведения, вы можете вернуть его, переопределив метод make_not_authenticated_error в ваших Security-классах.

Например, вы можете создать подкласс HTTPBearer, который будет возвращать ошибку 403 Forbidden вместо стандартной 401 Unauthorized:

{* ../../docs_src/authentication_error_status_code/tutorial001_an_py39.py hl[9:13] *}

/// tip | Совет

Обратите внимание, что функция возвращает экземпляр исключения, не вызывает его. Выброс выполняется остальным внутренним кодом.

///