fix(auth): сбрасывать Redis-кэш пользователя после подтверждения email
get_current_user кэширует пользователя в Redis на 5 минут. verify_email не сбрасывал этот кэш после user.is_verified = True — если пользователь до подтверждения хотя бы раз дёрнул защищённый эндпоинт (закешировался как неверифицированный), он получал "Необходимо подтвердить email адрес" ещё до 5 минут после реального подтверждения по ссылке из письма.
This commit is contained in:
@@ -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 успешно подтверждён"}
|
||||
|
||||
Reference in New Issue
Block a user