formulář pro zapomenuté heslo

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jarda256
Člen | 130
+
0
-

Ahoj, nevíte někdo o nějakém jednoduchém návodu na formulář pro obnovu hesla? Předem díky

Hurass
Člen | 114
+
0
-

S čím přesně si nevíš rady?

jarda256
Člen | 130
+
0
-

@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
+
+2
-

@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í.