Aktivace registrace přes email
- motorcb
- Člen | 552
Zdravím.
Dělám jednoduché forum do kterého se budou uživatelé registrovat. Abych
alespoň částečně při žhavých tématech eliminoval fake uživatele,
chtěl bych při registraci udělat aktivaci účtu přes email.
Na zaregistrovaný email odešlu informace o registraci a odkaz, na který by
se muselo kliknout. Tím by se registrace aktivovala a k účetu by se šlo
přihlásit.
Neřešil už to někdo? Jak na to v Nette?
Děkuji za nápady
- Šaman
- Člen | 2666
Řešil jsem už dávno, tak jen obecný postup. Nette to neřeší, ale ulehčuje veškerou rutinu.
- Při registraci se uživatel založí jako neaktivní (stačí sloupec v db a upravit přihlašování aby neaktivního nepřihlásil). A během registrace si taky vygeneruješ hash.
- Pošleš uživateli email (viz dokumentace, je to snadné) ve kterém bude odkaz na signál viz. další bod. A v url bude i parametr hash.
- Vytvoříš si na vhodném presenteru
handleActivate($hash)
. Ten najde v databázi uživatele podle toho hashe a aktivuje jej (změníactivate
na TRUE) a asi by bylo vhodné i smazat hash.
- Vojtěch Dobeš
- Gold Partner | 1316
Obávám se, že to nejde. V takovémto případě je nejvhodnější
použít actionActivate
, které rovnou přesměruje. Do šablony,
podle které bude sestaven email (setHtmlBody($template)
), je
třeba si předat proměnnou $_control
, což by měla být instance
presenteru.
- Šaman
- Člen | 2666
Ano, actionActivate($hash)
bude asi lepší, já myslím, že
jsem to dělal přes handle který jsem měl v BasePresenteru, nebo nějaká
podobná prasárna.
Nastuduj si Samostatné šablony a Snažší vytváření šablon. Pak v té šabloně uděláš odkaz naprosto stejně, jako v běžné šabloně pohledu.