Nefunkční expirace session

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
exquis
Člen | 82
+
0
-

Zdravím pánové,

mám problém s nastavením session, neustále mě odhlašuje cca po hodině nečinnosti a to i přes nastavené setExpiration(„+14 days“). Napadlo mě, že možná expiraci nastavuji špatně, můžete se prosím mrknout, jestli to nedělám špatně/pozdě?

public function signInFormSucceeded($form) {
        $v = $form->values;
        try {
            $u = $this->getUser();
            $u->setAuthenticator($this->context->getService("AdminAuthenticator"));
            $u->setExpiration("+ 14 days", TRUE);
            $u->login($v->username, $v->password);
            $this->log("Přihlášení uživatele " . $v->username);
            $this->redirect('System:dashboard');
        } catch (Nette\Security\AuthenticationException $e) {
            $form->addError($e->getMessage());
        }
}

CONFIG.NEON

session:
    expiration: 14 days
    debugger: true

phpinfo()

Session Support	enabled
Registered save handlers	files user memcache memcached
Registered serializer handlers	php_serialize php php_binary wddx
Directive	Local Value	Master Value
session.auto_start	Off	Off
session.cache_expire	180	180
session.cache_limiter	nocache	nocache
session.cookie_domain	no value	no value
session.cookie_httponly	On	Off
session.cookie_lifetime	864000	0
session.cookie_path	/	/
session.cookie_secure	Off	Off
session.entropy_file	/dev/urandom	/dev/urandom
session.entropy_length	32	32
session.gc_divisor	1000	1000
session.gc_maxlifetime	864000	1440
session.gc_probability	0	0
session.hash_bits_per_character	5	5
session.hash_function	0	0
session.name	PHPSESSID	PHPSESSID
session.referer_check	no value	no value
session.save_handler	files	files
session.save_path	/var/lib/php5/sessions	/var/lib/php5/sessions
session.serialize_handler	php	php
session.upload_progress.cleanup	On	On
session.upload_progress.enabled	On	On
session.upload_progress.freq	1%	1%
session.upload_progress.min_freq	1	1
session.upload_progress.name	PHP_SESSION_UPLOAD_PROGRESS	PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix	upload_progress_	upload_progress_
session.use_cookies	On	On
session.use_only_cookies	On	On
session.use_strict_mode	Off	Off
session.use_trans_sid	0	0

díky

David Matějka
Moderator | 6445
+
0
-

ubuntu/debian nepouziva k cisteni session gc od php, ale ma vlastni mechanismus – proste jednou za cas se spusti cron, ktery smaze session. Pokud je to tvuj server, muzes navysit gc_maxlifetime v php.ini

druhou moznosti je zmenit session.save_path, pak si ale dej pozor na mazani session, at tam neni spousta souboru. bud si na to udelej vlastni script, nebo zpet zapni ten gc mechanismus od php – melo by stacit nastavit session.gc_probability na 1

edit: jeste k tomu bodu 1. asi nemusi stacit navysit tu hodnotu – zalezi na linuxu. treba na ubuntu to dokaze precist z php.ini, ale v debianu koukam ze je ta hodnota natvrdo napsana v tom scriptu. takze to kdyztak budes muset upravit v /usr/lib/php5/maxlifetime

exquis
Člen | 82
+
0
-

Určitě vyzkouším, díky moc za tipy

exquis
Člen | 82
+
0
-

David Matějka napsal(a):

ubuntu/debian nepouziva k cisteni session gc od php, ale ma vlastni mechanismus – proste jednou za cas se spusti cron, ktery smaze session. Pokud je to tvuj server, muzes navysit gc_maxlifetime v php.ini

druhou moznosti je zmenit session.save_path, pak si ale dej pozor na mazani session, at tam neni spousta souboru. bud si na to udelej vlastni script, nebo zpet zapni ten gc mechanismus od php – melo by stacit nastavit session.gc_probability na 1

edit: jeste k tomu bodu 1. asi nemusi stacit navysit tu hodnotu – zalezi na linuxu. treba na ubuntu to dokaze precist z php.ini, ale v debianu koukam ze je ta hodnota natvrdo napsana v tom scriptu. takze to kdyztak budes muset upravit v /usr/lib/php5/maxlifetime

Vypadá, že jsi na to kápnul, po nastavení gc_probability na 1 již gc_maxlifetime respektuje nastaveni v config.neon, díky moc ;)