2.6 KiB
2.6 KiB
TODO - Prossimi Passi Auth
1. Iscrizione al servizio
- Definire modello
usersin SQLite (id,email,password_hash,email_verified,created_at,updated_at). - Creare endpoint
POST /api/auth/registercon validazione input (email, password forte). - Hash password con Argon2id o bcrypt (mai salvare password in chiaro).
- Bloccare email duplicate con vincolo
UNIQUEe gestione errore chiara. - Aggiungere form UI registrazione (email, password, conferma password, accettazione termini).
- Mostrare messaggi UX chiari (successo/errore/utente gia registrato).
- Preparare invio email verifica account (token con scadenza).
2. Login
- Creare endpoint
POST /api/auth/login. - Verificare credenziali in modo sicuro (confronto hash password).
- Introdurre sessione con cookie
HttpOnly+SameSite=Lax(+Securein HTTPS). - Aggiungere endpoint
POST /api/auth/logoutper invalidare sessione. - Aggiungere endpoint
GET /api/auth/meper stato utente autenticato. - Costruire pagina/modal login con gestione errori (credenziali errate, account non verificato).
- Rate limit su login per mitigare brute force.
3. Recupero password
- Endpoint
POST /api/auth/forgot-password(sempre risposta neutra per privacy). - Generare token monouso con scadenza breve (es. 30-60 min).
- Salvare token hashato nel DB (
password_resetso campi dedicati inusers). - Inviare email con link di reset.
- Endpoint
POST /api/auth/reset-passwordcon validazione token + nuova password. - Invalidare token dopo utilizzo.
- Forzare logout da sessioni vecchie dopo reset password.
4. Sicurezza e compliance (trasversale)
- CSRF protection per endpoint sensibili con cookie/sessione.
- Logging minimale senza dati sensibili (no password/token in log).
- Policy password minima (lunghezza, complessita, blacklist password comuni).
- Audit su cookie e header di sicurezza (
Content-Security-Policy,X-Frame-Options,Referrer-Policy). - Aggiornare privacy policy per raccolta dati (IP, user-agent, email).
5. Testing
- Test unitari validazione auth.
- Test integrazione endpoint register/login/forgot/reset.
- Test casi limite: token scaduto, email duplicata, password debole.
- Test E2E flusso completo: registrazione -> login -> logout -> recupero password.
6. Delivery
- Definire variabili env (
APP_BASE_URL,SMTP_*,SESSION_SECRET). - Preparare migrazione DB iniziale per tabelle auth.
- Setup provider email (SMTP o API) con ambiente dev/staging/prod.
- Checklist rilascio con smoke test post-deploy.