44 lines
1.9 KiB
Markdown
44 lines
1.9 KiB
Markdown
# 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
|