formulář pro zapomenuté heslo
- jarda256
- Člen | 130
@Hurass No nějak vůbec nevím jak na to. Předpokládám, že vytvořit form, kde uživatel zadá své uživatelské jméno a pak se odešle mail, ale tam by to chtělo asi nějaký odkaz na změnu. Ale nevím jak na to. Jak odkaz tak zpracování. Používám doctrine, jestli to má nějaký rozdíl
- uestla
- Backer | 799
@jarda256 Při požadavku na reset vygeneruj náhodný token. Uživateli pošli e-mail s odkazem na reset hesla, jehož součástí bude otisk (hash) tohoto tokenu – např. SHA1. Navíc si ulož čas, kdy byl token vygenerován.
Odkaz povede na nějakou akci. V ní zkontroluješ, zda daný otisk v databázi existuje a je stále platný (délka platnosti tokenu je na tobě, např. 14 dní). Pokud ano, zobrazíš formulář pro reset hesla.
Podstatné je provádět kontrolu platnosti tokenu ještě před odesláním
formuláře pro reset (typicky v action
metodě) a ideálně mít
v daném presenteru pouze tyto 2 věci (tj. např.
actionReset($token)
a vytvoření/zpracování formuláře).
To by mělo být dostatečně bezpečné řešení.