Problem s prihlasovani na ic.cz
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Saska
- Člen | 23
Mam udelanou webovou aplikaci, ve ktere je administracni cast vyzadujici prihlaseni uzivatele. Na localhostu mi vse funguje normalne a na testovaci verzi webu na ic.cz mi to taky chodilo. Jenze pak jsem tam nahral novou verzi a prestalo to slapat(Pritom si jsem skoro na 100% jisty, ze jsem v teto rezii authentikace nic nemenil). Behem testovani jsem zjistil, ze sice hned po odeslani formulare jsem authenticovany, ale tento stav nevydrzi dalsi refresh(pravdepodobne se nikam neulozi). Nemuzete mi proto poradit, co se mohlo stat?
Muj config.ini
`...
[production < common]
service.Nette-Security-IAuthenticator = Login
`
Muj Login.php
class Login extends MySecurity implements IAuthenticator
{
/**
* Performs an authentication
* @param array
* @return void
* @throws AuthenticationException
*/
public function authenticate(array $credentials)
{
$username = strtolower($credentials[self::USERNAME]);
$password = strtolower($credentials[self::PASSWORD]);
$row = dibi::select('*')->from('users')->where('username=%s', $username)->where('deleted=%i', 0)->fetch();
if (!$row) {
throw new AuthenticationException("User '$username' not found.", self::IDENTITY_NOT_FOUND);
}
if ($row->password !== self::hash($credentials[self::PASSWORD], $row->hash)) {
throw new AuthenticationException("Invalid password.", self::INVALID_CREDENTIAL);
}
unset($row->password);
return new Identity($row->username, $row->role, $row);
}
}
dale jeste prikladam funkci, ktera se provede po odeslani prihlasovaciho formulare
public function loginFormSubmitted($form)
{
try {
$user = Environment::getUser();
// zaregistrujeme autentizační handler
// $user->setAuthenticationHandler(new MyAuthenticator);
// nastavíme expiraci
$user->setExpiration('+ 30 minutes');
// Debug::dump($form->getValues());
$user->authenticate($form['username']->getValue(), $form['password']->getValue());
// $this->getApplication()->restoreRequest($this->backlink);
// $this->redirect('Default:');
} catch (AuthenticationException $e) {
$form->addError($e->getMessage());
}
}
- David Grudl
- Nette Core | 8229
Zkus ještě smazat všechny uložené cookies pro doménu nebo vyzkoušet jiný prohlížeč.