Přihlašování: Call to undefined method User::authenticate()
- Tomáš Votruba
- Moderator | 1114
Dobrý den,
postupuji přesně dle http://zdrojak.root.cz/…i-uzivatelu/, ale jakmile
dojdu k:
<?php
$user->authenticate($login,$password);
?>
…dostanu chybu:
Call to undefined method User::authenticate().
Jako kdyby:
<?php
$user->setAuthenticationHandler(new MyAuthenticator);
?>
…nefungovalo.
Věřím, že je to nějaká pakárna, ale po 4 hodinách zkoušení na to
stále nemohu dojít.
Používám Nette 2.0 pro 5.2 bez prefixů.
- Tomáš Votruba
- Moderator | 1114
Děkuji mnohokrát. Dohledal jsem zbytek a pro úplnost doplňuji.
<?php
authenticate() → login()
signOut() → logout()
isAuthenticated() → isLoggedIn()
getSignOutReason() → getLogoutReason()
$onAuthenticated → $onLoggedIn
$onSignedOut → $onLoggedOut
?>
- Tomáš Votruba
- Moderator | 1114
Teď mi to pro změnu chce tu metodu authenticate, když tam mám login. Co
s tím?
Obecně by mi pomohl nějaký jednoduchý tutorial na přihlášení. Mám
s tím neskutečné problémy.
Class MyAuthenticator contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (IAuthenticator::authenticate)
Děkuji.
- Tomáš Votruba
- Moderator | 1114
Používám na začátku zmíněnou třídu MyAuthenticator, kde definuji
login(). Pokud tam dám authenticate(), tak se pak nepředají proměnné
tu: $user->login(array($aLogin,$aPassword));
<?php
// přihlášení
$user = Environment::getUser();
// zaregistrujeme autentizační handler
$user->setAuthenticationHandler(new MyAuthenticator);
// nastavíme expiraci
$user->setExpiration('+ 60 minutes');
try {
// pokusíme se přihlásit uživatele...
$user->login(array($aLogin,$aPassword));
// ...a v případě úspěchu presměrujeme na další stránku
Environment::getHttpResponse()->redirect('.');
}
catch (AuthenticationException $e) {
echo 'Chyba: ', $e->getMessage();
}
?>
- Vyki
- Člen | 388
Mrkni se jak je do uděláno v příkladu CD-collection. Nic víc k pochopení nepotřebuješ, z příkladu se to naučíš nejlépe.
Edit: A hlavně neopomeň config.ini konkrétně řádek, kde je
service.Nette-Security-IAuthenticator = UsersModel
Editoval Vyki (15. 11. 2010 23:37)