Files
service-finder/plans/logic_spec_auth_debug.md

1.9 KiB

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