Po vypršení doby přihlášení přesměrovat na přihlášení

aha009
Člen | 50
+
0
-

Ahoj,
chtěl bych aby se stránka administrace po vypršení času přihlášení automaticky přesměrovala na přihlášení.
Prosím vás o radu.

Děkuji

BasePresenter

namespace App\AdminModule\Presenters;

use Nette\Application\UI\Presenter;
use Nette\Security\IUserStorage;


abstract class BasePresenter extends Presenter
{
    /** @persistent */
    public $locale = 'cz';

    public function startup(): void
    {
        parent::startup();

        $this->user->setExpiration('1 minutes');

        if (!$this->user->isLoggedIn()) {
            if ($this->user->getLogoutReason() === IUserStorage::INACTIVITY) {
                $this->flashMessage('Z důvodu delší nečinnosti jste byli automaticky odhlášeni.', 'warning');
                $this->redirect('Sign:in', ['backlink' => $this->storeRequest()]);
            }
            $this->redirect('Sign:in', ['backlink' => $this->storeRequest()]);
        }
    }

}
HonzaN
Člen | 66
+
0
-

Expirace se kontroluje při každém požadavku na server. Je tedy zapotřebí v požadovaném intervalu provést jednoduchý XHR request do zabezpečené části, který v případě expirace vrátí odpověď která bude obsahovat vynucené přesměrování na nové přihlášení.

MajklNajt
Člen | 502
+
0
-

HonzaN napsal(a):

Expirace se kontroluje při každém požadavku na server. Je tedy zapotřebí v požadovaném intervalu provést jednoduchý XHR request do zabezpečené části, který v případě expirace vrátí odpověď která bude obsahovat vynucené přesměrování na nové přihlášení.

obávam sa, že posielať ajaxový request nemôže, lebo práve ten bude exspiráciu „resetovať“ a predlžovať…

Kamil Valenta
Člen | 822
+
+1
-

Asi bych si držel v sessione timestamp poslední aktivity a neohlížel se na expiraci sessiony. Ajaxový požadavek by pak vedl na událost, která nebude timestamp posouvat…

HonzaN
Člen | 66
+
0
-

@MajklNajt To je otázka správného časování.

Kamil Valenta
Člen | 822
+
0
-

HonzaN napsal(a):

@MajklNajt To je otázka správného časování.

Tomu nerozumím, lze uvést příklad?