Posílání zapomenutého hesla pro přihlášení

igi
Člen | 24
+
0
-

Zdravím, v dokumentaci Nette jsem četl, že není dobré posílat heslo přes mail s čímž souhlasím. Je tedy vhodné posílat jen nějaký odkaz s jedinečným dostatečně dlouhým get parametrem? V Nette bych tedy v databázi pro určitého uživatele vygeneroval daný klíč, ten bych přímo uložil do databáze, stejný poslal i mailem a pak pokud by přišel tento požadavek, tak bych přiřadil danou identitu? Je to správný postup? A vytvořit na toto asi nový presenter, že? Nebo není toto už někde řešeno či na to není nějaké komponette? Přece jen je to si myslím docela běžná věc.
Děkuji.

Kamil Valenta
Člen | 758
+
+3
-

Ano, při zapomenutém hesle zaslat dostatečně dlouhý, unikátní, jednorázový hash s krátkou časovou platností.

igi
Člen | 24
+
0
-

Děkuji a není na to už v Nette něco připravené?

dakur
Člen | 493
+
+4
-

Myslím, že ne, ale bude to vypadat nějak takto:

  • password reset request presenter – obsahuje formulář na reset hesla, pole e-mail+submit, po odeslání a příp. validaci vygeneruje token a pošle link s tímto tokenem e-mailem (token by měl mít omezenou platnost)
  • password reset completion presenter – má parametr token, ten zvaliduje a pokud platí, vyrenderuje formulář na změnu hesla. Po vyplnění uložíš nový hash hesla, přihlásíš a přesměruješ do appky.

Můžeš to mít v jednom presenteru, ve dvou, jak je libo.

Editoval dakur (17. 2. 2023 17:54)

ViPEr*CZ*
Člen | 811
+
0
-

Kdysi jsem to zkousel jako extension… dneska jsem si s tim jen tak hral s refaktorem na novejsi phpko… :-D
Je to dokonce na https://componette.org/…ordrecovery/ a repo je pak
https://github.com/…ature/di-3.1 Je to fakt jen POC a klidne si to forkni a vymakej si to ;-)

Editoval ViPEr*CZ* (25. 10. 2023 17:21)