Ho intenzione di implementare il recupero della password nella mia autenticazione. Non l'ho messo insieme per un po 'e mi chiedo se c'è qualcosa di cui dovrei essere a conoscenza.
La mia idea al momento è:
- L'utente fa clic su "Ho dimenticato la mia password" per andare alla pagina di recupero della password: a modulo con un campo email
- Inseriscono la loro e-mail e una e-mail viene inviata a quell'indirizzo con a link e password recuperare token / chiave (stringa MD5 - è sufficiente essere alquanto casuale e lungo a destra?). Una voce è anche fatta in password_recovery tabella del database che lega quel token al loro account e una data di scadenza (1 ora?)
- Recuperano l'email e fanno clic sul collegamento per portarli a password set page: due campi per inserire la password e confermare la loro password di nuovo.
- Fatto, effettua nuovamente il login con la nuova password
Sembra OK? Qualcosa è cambiato negli anni in cui questo approccio non è più raccomandato?
UPDATE
Aggiunte che ho optato per:
- Conservo il token nell'hash del database. Se un hacker fosse in grado di accedere alla tabella del database in qualche modo, non sarebbe in grado di utilizzare i token memorizzati .. si spera (hash con sha256)