# Auth and Login Development Log

Decizii despre autentificare, OTP, sesiuni, formulare si compatibilitate cu password managere/autofill.

## 2026-06-09 - Verificare sesiune inainte de fluxuri cu save

Regula de development: orice operatie UI care poate ajunge la `save`/`submit` trebuie sa verifice starea de autentificare inainte ca operatorul sa inceapa editarea si din nou imediat inainte de salvare. Aceeasi regula se aplica la schimbarea taburilor/sectiunilor, pentru ca navigarea poate declansa incarcari sau actiuni protejate.

Comportamentul asteptat:

- daca sesiunea este valida, fluxul continua normal
- daca sesiunea lipseste sau a expirat, aplicatia revine coerent la login
- datele deja introduse intr-un formular nu trebuie resetate doar pentru ca autentificarea a expirat inainte de save

Scop:

- evitarea pierderii modificarilor locale din formulare
- separarea clara intre erori de validare si sesiune expirata
- evitarea operatiunilor partiale pe endpoint-uri protejate

## 2026-06-06 - OTP Login Keeps a Password-Manager-Friendly Form Shape

Observatie: unele password managere si autofill-uri mobile nu initiau corect pe login-ul Madagascar Local Authority, desi completarea mergea pe o pagina similara din PBX management.

Diferente relevante observate pe pagina care functiona:

- formular clasic `method="post"`
- camp de cont cu `autocomplete="username"`
- camp unic pentru codul OTP, separat de cele 6 casute vizuale

Decizie:

- UI-ul ramane cu 6 casute OTP
- formularul include si campuri ajutatoare off-screen pentru `username` si OTP agregat
- JS sincronizeaza codul complet intre campul agregat si cele 6 casute
- formularul pastreaza `autocomplete="on"` la nivel de form, ca hint-urile specifice de pe campuri sa nu fie neutralizate

Scop:

- compatibilitate mai buna cu password managere si autofill mobil
- fara a complica interfata vizibila
