# logic_spec_auth_debug.md — Auth Debug Deep Dive ## Modul Célja Az auth végpontok (forgot-password, login) hibakezelésének debug-javítása. Az `initiate_password_reset` már dob kivételeket (inaktív user esetén HTTPException, email hiba esetén 500), de a végpont ezeket némán elnyeli. A login végpont pedig nem ismeri fel az inaktív fiókot. ## Érintett Fájlok | Fájl | Szerep | |------|--------| | `backend/app/api/v1/endpoints/auth.py` | API végpontok (forgot-password, login) | | `backend/app/services/auth_service.py` | Üzleti logika (initiate_password_reset, authenticate) | | `backend/app/services/email_manager.py` | Email küldés Brevo API-n / SMTP-n keresztül | ## 1. Beavatkozás: Forgot-Password Anti-Enumeration Debug ### Jelenlegi állapot Az `auth.py:114-125` végpont `initiate_password_reset`-et hív, de a visszatérési értéket teljesen figyelmen kívül hagyja. Mindig ugyanazt a generikus választ adja. Az `auth_service.py:347-388` `initiate_password_reset`: - Ha nincs user: return "not_found" - Ha user inaktív: raise HTTPException(400, "AUTH.USER_INACTIVE") - Ha email hiba: raise HTTPException(500, "Email küldési hiba: ...") - Siker esetén: return "success" ### Módosítás A `result` változó ellenőrzése. Ha "not_found", dobjon HTTPException-t. ## 2. Beavatkozás: Login Inaktív Fiók Felismerése ### Jelenlegi állapot Az `auth.py:32-81` login végpont `AuthService.authenticate`-et hív, ami csak email+jelszó párost ellenőriz, `is_active`-ot NEM. Inaktív user esetén is visszaküldi a tokent `"is_active": false`-cal. ### Módosítás Token generálás ELŐTT ellenőrizni a `user.is_active` flag-et. Ha False, dobjon explicit `HTTPException(400, "AUTH.USER_INACTIVE")`-t. ## 3. Élő Diagnosztika ### Parancsok 1. curl POST a forgot-password végpontra 2. Docker logok: `docker compose logs --tail 100 sf_api` ## Kockázatok - Anti-enumeration gyengítése biztonsági rés lehet debug időszakban