Nelze se odhlásit přes logout()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- MW
- Člen | 626
Zdravím a prosím o radu,
nelze se mě odhlásit přes
$this->getUser()->logout();
a vůbec netusim proc. Napadá vas něco na co se podívat?
Akce projede, žádná chyba, ale pořád jsem přihlášen.. vidím session
i v debugpanelu.
Díky!
Presenter
class LoginPresenter extends BasePresenter {
public function startup() {
parent::startup();
if ($this->getUser()->isLoggedIn()) {
$this->redirect('Pages:');
}
}
public function renderDefault() {
}
function createComponentSignForm() {
$form = new Form();
$form->addText('email', 'E-mail:', 15)
->setRequired('Vyplňte prosím jméno');
$form->addPassword('password', 'Heslo:', 15)
->setRequired('Vyplňte prosím heslo');
$form->addSubmit('send', 'Přihlásit');
$form->onSuccess[] = callback($this, 'formSubmitted');
return $form;
}
function formSubmitted($form) {
$values = $form->getValues();
try {
$this->getUser()->login($values->email, $values->password);
$this->getUser()->setExpiration('+ 1 day', FALSE);
$this->flashMessage('Byl jste přihlášen');
$this->redirect('Pages:');
} catch (Nette\Security\AuthenticationException $e) {
$form->addError($e->getMessage());
}
}
function actionOut() {
$this->getUser()->logout();
$this->flashMessage('Byl jste odhlasen');
$this->redirect('Login:');
}
}
Config:
session:
debugger: true
expiration: + 1 day
Šablona:
<a n:href="Login:out" class="btn btn-info btn-xs"><span class="glyphicon glyphicon-off"></span></a>
Editoval MW (1. 6. 2016 16:19)
- David Matějka
- Moderator | 6445
k logoutu nemuze dojit, jelikoz ve startupu prihlaseneho uzivatele presmerujes jinam.
- Pavel Kravčík
- Člen | 1196
actionDefault()
Nebo ošklivě testuj akci ve startupu.
Editoval Pavel Kravčík (1. 6. 2016 17:01)