Přihlašování a Exception vypsání na stránce
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jo_Gerry_jo
- Člen | 10
Zdravím přihlašuji uživatele jednoduše a pokud zadá neplatný nick nebo heslo vyhodí vyjímku, ale já myslel, že se vypíše normálně na stránce a ne v laděnce (pokud vypnu debugger) tak error 500, jak udělám aby se to zobrazilo na stránce?
kód:
# PRESENTER
public function SubmittedLogin($login) {
try {
$login = $login->getValues();
$auth = $this->getUser();
$auth->login($login->nick, $login->password);
$this->flashMessage('Přihlášení bylo úspěšné.', 'success');
} catch (NS\AuthenticationException $e) {
$this->flashMessage($e->getMessage());
}
}
# Authenticator
public function authenticate(array $data) {
list($nick, $pass) = $data;
$find_nick = $this->database->query("SELECT id, nick, password, salt FROM user WHERE [nick] = %s", $nick)->fetch();
if(!$find_nick) {
throw new NS\AuthenticationException("Uživatel '$nick' nenalezen.", self::IDENTITY_NOT_FOUND);
}
$salt = $find_nick->salt;
$user_input = crypt($pass, $salt);
if($user_input!=$find_nick->password)
{
throw new NS\AuthenticationException("Špatné heslo.", self::INVALID_CREDENTIAL);
}
unset($find_nick->password);
# nick nalezen v db zjistíme SALT a zkontrolujeme pass
return new NS\Identity($find_nick->id, NULL);
}
už jsem zjistil, kde je chyba a to v use Nette\Security as NS;
Editoval jo_Gerry_jo (26. 10. 2013 1:14)