nette vlastní authenticator výjimky
- endy
- Člen | 18
Zdravím vytvořil jsem si vlastní authenticator, který ipmplementuje
rozhraní Nette\Security\IAuthenticator.
Trochu jsem se inspiroval autentikatorem z https://doc.nette.org/…thentication#…
a napsal výjímky pokud není uživatel nalezen nebo je heslo chybné.
throw new \Nette\Security\AuthenticationException('Uživatel nenalezen')
Teď ale popravdě nevím jak dál lze na ty výjimky nějak nastavit chybové zprávy ? Jelikož v běžném přihlašování uživateli při zadání chybného hesla taky nevyletí výjimka.
Děkuji.
Editoval endy (21. 11. 2018 16:02)
- Ondřej Kubíček
- Člen | 494
a jak a kde si tu vyjímku zpracuješ?
měl bys tam mít něco takového jako je v sandboxu
- endy
- Člen | 18
Tu výjimku zpracovávám v base presenteru v
public function LoginFormSuccess(Form $form) {
try {
$user= $this->getUser();
$values = $form->getValues();
$user->login($values->usernameL, $values->passwordL);
} catch (Nette\Security\AuthenticationException $e) {
$form->addError('error');
}
}
Teď jsem si ale všiml, že editor vypisuje, že hodnota $e se zdá být nenastavená.
- Ondřej Kubíček
- Člen | 494
a jak vypisuješ v šabloně tu chybu? respektive celý ten form? pokud jej vykresluješ manuálně je potřeba i manuálně vypsat error
- Ondřej Kubíček
- Člen | 494
na to jsem se neptal
ptám se na to jak samotný formulář vypisuješ v šabloně
takhle
{control loginForm}
nebo
<form n:name="loginForm"> ...
??
protože první způsob ti musí fungovat, u druhé jak už jsem psal, bys musel přidat manuální vykreslení errorů, což bych řekl, že ti tam ted chybí, proto nevidíš tu error formuláře
- Ondřej Kubíček
- Člen | 494
a zachytí ti vubec ten catch tu exception? debugoval jsi to a došel na ten
řádek, kde přidáváš error do formuláře?
máš to vubec v té třídě co implementuje IAuthenticator správně, vyhodí
se vubec ta vyjímka?
- Tomáš Vodička
- Člen | 28
Myslím, že ti chybí lomítko na začátku v definici exception, proto ti jí to nikdy nezachytí
catch (\Nette\Security\AuthenticationException $e)