znovuobnovenie session po expiracii
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duskohu
- Člen | 778
Caute viete mi poradit?
mam v neonu:
session:
autoStart: smart
expiration: +1 minutes
v Secured presenteru:
/** @var Nette\Http\SessionSection */
public $signSession;
/**
* Startup
*/
public function startup()
{
parent::startup();
$user = $this->getUser();
$this->signSession = $this->session->getSection("signSession");
if (!$user->isAllowed($this->name, $this->action)) {
if ($user->getLogoutReason() === IUserStorage::INACTIVITY) {
$flashMessage = "Uplynula doba neaktivity! Systém vás z bezpečnostných dôvodov odhlásil.";
}
else{
$flashMessage = "Na vstup do tejto sekcie nemáte dostatočné oprávnenia!";
}
$this->flashMessage($flashMessage, 'warning');
Debugger::log($flashMessage);
$this->signSession->backlink = $this->storeRequest();
$this->redirect(':System:Front:Sign:default');
}
else{
$this->signSession->allowedBacklink = $this->storeRequest();
}
}
$this->signSession->backlink pouzivam v login formulari, ide o to ze po expirovani session nastane pripad ze uzivatel nema opravnenia a bol odhlaseny koli neaktivite, a nastavenie session vyvola error:
$this->signSession->backlink = $this->storeRequest();
The expiration time is greater than the session expiration 60 seconds
ako viem znovu zapnut session pre backlink?
- h4kuna
- Backer | 740
To dělá to nastavení co máš v neonu, nevím zda je úplně optimální mít globální expiraci na 1 minutu, ale pokud to tak chceš tak metoda storeRequest() má první parametr $expiration. Takže ji volej
$this->storeRequest('+1 minute');
nebo si ji musíš přetížit a nastavit ji jinou defaultní hodnotu.