Aktivace registrace přes email

1. před 10 měsíci

motorcb
Nette guru
Registrovaný: 10. 1. 2012
Příspěvky: 232

Aktivace registrace přes email

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

 

2. před 10 měsíci

Šaman
Nette guru
Registrovaný: 8. 1. 2010
Příspěvky: 529

Re: Aktivace registrace přes email

Řešil jsem už dávno, tak jen obecný postup. Nette to neřeší, ale ulehčuje veškerou rutinu.

  1. 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.
  2. 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.
  3. 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.

PHP mě živí: Pivo – Houska – Paprikáš

 

3. před 10 měsíci

motorcb
Nette guru
Registrovaný: 10. 1. 2012
Příspěvky: 232

Re: Aktivace registrace přes email

Šaman:
Super, díky za skvělé vysvětlení :)
Jen nevím jak vytvořím odkaz do emailu pro handle…

V presenteru UserPresenter mam handleActivate($hash, $id) který provede aktivaci ale jak sestrojit odkaz do emailu, který zavolá tento handle???

Díky

 

4. před 10 měsíci

vojtech.dobes
Nette guru
Registrovaný: 27. 9. 2010
Příspěvky: 992

Re: Aktivace registrace přes email

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.


Dělat věci dobře. Github @vojtechdobes

 

5. před 10 měsíci

Šaman
Nette guru
Registrovaný: 8. 1. 2010
Příspěvky: 529

Re: Aktivace registrace přes email

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.


PHP mě živí: Pivo – Houska – Paprikáš

 

Zápatí