From 3af79e9d031341e4ecd54feaac099167b132a47e Mon Sep 17 00:00:00 2001 From: jze9 Date: Mon, 27 Jul 2026 12:22:37 +0500 Subject: [PATCH] =?UTF-8?q?fix(auth):=20=D1=81=D0=B1=D1=80=D0=B0=D1=81?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D1=82=D1=8C=20Redis-=D0=BA=D1=8D=D1=88=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=D1=82=D0=B2=D0=B5=D1=80=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20email?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit get_current_user кэширует пользователя в Redis на 5 минут. verify_email не сбрасывал этот кэш после user.is_verified = True — если пользователь до подтверждения хотя бы раз дёрнул защищённый эндпоинт (закешировался как неверифицированный), он получал "Необходимо подтвердить email адрес" ещё до 5 минут после реального подтверждения по ссылке из письма. --- services/api/app/api/auth.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/api/app/api/auth.py b/services/api/app/api/auth.py index afd06ca..e79fcd9 100644 --- a/services/api/app/api/auth.py +++ b/services/api/app/api/auth.py @@ -12,6 +12,7 @@ from app.core.security import ( create_access_token, get_current_user, hash_password, + invalidate_user_cache, verify_password, ) from app.database import get_db @@ -146,5 +147,6 @@ async def verify_email(token: str, db: AsyncSession = Depends(get_db)) -> dict: user.is_verified = True user.verification_token = None await db.commit() + await invalidate_user_cache(user.id) return {"message": "Email успешно подтверждён"}