Expirace session při dlouhodobém přihlášení

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

Nedaří se mi uživatele udržet trvale přihlášeného. Mám tento kód:

		if ($values->remember) {
			$this->user->setExpiration('+ 10 days', FALSE);
		} else {
			$this->user->setExpiration('+ 20 minutes', TRUE);
		}

a pokud se přihlásím tak, aby si mě aplikace pamatovala přihlášeného déle, než jen chvíli, tak mě aplikace stejně po krátké době odhlásí a já nevím proč. $values je ArrayHash hodnot odeslaných formulářem.

ali
Člen | 342
+
0
-

A neodhlasi te to nahodou vzdycky po 24 minutach? :-)

Mrkni na session.gc_maxlifetime v php.ini

duke
Člen | 650
+
0
-

Také pokud sdílíš adresář se session soubory s jinou aplikací na témže serveru, může ti to mazat ta druhá aplikace. V configu můžeš ten adresář nastavit takto:

	session:
		save_path: %tempDir%/session

Editoval duke (15. 3. 2015 15:24)

fary
Člen | 155
+
0
-

A když si tedy nastavim

session:
    save_path: %tempDir/session

tak nebude potreba si ty session rucne mazat?

duke
Člen | 650
+
0
-

Pokud je pravda, co se píše v manuálu PHP, nebude to nejspíš zapotřebí, ledaže bys využil nenulovou direktivu pro podadřesáře, tj. že bys měl např.:

session:
    save_path: 5;%tempDir%/session

Více viz výše odkazovaný manuál.

David Matějka
Moderator | 6445
+
0
-

debian nebo ubuntu mohou mit vypnuty gc a resit to cronem, viz https://forum.nette.org/…m-neco-resit#…