From 479534c7af02949d38245a1e8d9e62d2ecf6b48b Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Thu, 12 Feb 2026 20:51:04 +0100 Subject: [PATCH] Reflect latest changes in `docs/en/docs/tutorial/security/oauth2-jwt.md` --- docs/ru/docs/tutorial/security/oauth2-jwt.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/ru/docs/tutorial/security/oauth2-jwt.md b/docs/ru/docs/tutorial/security/oauth2-jwt.md index 2b425edb3e..7838b07df4 100644 --- a/docs/ru/docs/tutorial/security/oauth2-jwt.md +++ b/docs/ru/docs/tutorial/security/oauth2-jwt.md @@ -116,7 +116,11 @@ pwdlib также поддерживает алгоритм хешировани И еще одну — для аутентификации и возврата пользователя. -{* ../../docs_src/security/tutorial004_an_py310.py hl[8,49,56:57,60:61,70:76] *} +{* ../../docs_src/security/tutorial004_an_py310.py hl[8,49,51,58:59,62:63,72:79] *} + +Когда `authenticate_user` вызывается с именем пользователя, которого нет в базе данных, мы все равно запускаем `verify_password` с использованием фиктивного хэша. + +Это гарантирует, что эндпоинт отвечает примерно за одно и то же время вне зависимости от того, существует имя пользователя или нет, предотвращая тайминговые атаки (атака по времени), с помощью которых можно было бы перечислять существующие имена пользователей. /// note | Технические детали @@ -152,7 +156,7 @@ $ openssl rand -hex 32 Создайте служебную функцию для генерации нового токена доступа. -{* ../../docs_src/security/tutorial004_an_py310.py hl[4,7,13:15,29:31,79:87] *} +{* ../../docs_src/security/tutorial004_an_py310.py hl[4,7,13:15,29:31,82:90] *} ## Обновление зависимостей { #update-the-dependencies } @@ -162,7 +166,7 @@ $ openssl rand -hex 32 Если токен недействителен, то сразу же верните HTTP-ошибку. -{* ../../docs_src/security/tutorial004_an_py310.py hl[90:107] *} +{* ../../docs_src/security/tutorial004_an_py310.py hl[93:110] *} ## Обновление *операции пути* `/token` { #update-the-token-path-operation } @@ -170,7 +174,7 @@ $ openssl rand -hex 32 Создайте реальный токен доступа JWT и верните его -{* ../../docs_src/security/tutorial004_an_py310.py hl[118:133] *} +{* ../../docs_src/security/tutorial004_an_py310.py hl[121:136] *} ### Технические подробности о JWT ключе `sub` { #technical-details-about-the-jwt-subject-sub }