Neustálé (samo) odhlašování

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

Zdravím, netušítě někdo čím muže být zpusobene to že mě to neustale odhlašuje. Po přihlášení mám nastaveno

$this->user->setExpiration('+ 14 days', FALSE);

V bootstrapu jsem přidal řádek:

$container->session->setExpiration('+ 14 days');

Ale pořád mě to odhlašuje cca po 3 minutách. Když si dám dumpnout $session tak option vypadá takto:

options private => array(14) {
      gc_maxlifetime => 1209600
      cookie_lifetime => 1209600
      referer_check => ""
      use_cookies => 1
      use_only_cookies => 1
      use_trans_sid => 0
      cookie_path => "/"
      cookie_domain => ""
      cookie_secure => FALSE
      cookie_httponly => TRUE
      cache_limiter => NULL
      cache_expire => NULL
      hash_function => NULL
      hash_bits_per_character => NULL
   }

Děkuji za jakékoliv rady.

22
Člen | 1478
+
0
-

…vyčistil bych si cache porhlížeče, odstranil cookies.

bojovyletoun
Člen | 667
+
0
-

Možná na to bude mít vliv automatické startování session. (Do bootstrapu $container->session->start();). Ještě plácnu toto :$conta->user->setExpiration('+ 14 days', FALSE); ->volat taky v boostrapu. Ale to mi někdo vysvětlete, jestli to bude mít smysl.

případně zkus jiné prohlížeče, některé třeba mažou cookie při ukončení. (i když o tom nepíšeš v dozazu…)

22
Člen | 1478
+
0
-

@bojovyletoun: expirace globální session musí být stejná nebo vyšší, než je pak hodnota jakékoliv jiné session v aplikaci. Toho user bych tam v bootstrapu vůbec necpal a volal $container->session->setExpiration(), jak to má v prvním příspěvku.

Jack si musí zjistit, co se děje s cookie v prohlížeči (ve Firebugu např.) a jakou má nastavenou platnost tam.

joseff
Člen | 233
+
0
-

Tak už jsem přišel na stopu. Mám totiž v mé aplikaci odkazy (img) na adresu data.mojedomena.cz kde take bezi nette. A jelikoz jde o img tak se odkaz nacita uz pri nacteni stranky, jenze to nette v domene data.mojedomena.cz vyhodi page not found a 404, coz mi premaze moji session(nevim proc). Potreboval bych tedy aby se session v adrese www.mojedomena.cz a v adrese data.mojedomena.cz navzajem nepremazavali, coz nevim jak dosahnout. V session je vse v poli [_NF] ale na prepsani toho bych musel zasahnout do nette, coz nechci. Jak tedy na to?

Jeste doplnim ze jsem to testoval a opravdu to zabere. Pokud na domene data.mojedomen.cz v nette prepisu v souboru session.php vse _NF na _NF2 tak vse funguje OK, ted jeste jak to udelat ciste bez zasahu do Nette.

Editoval joseff (19. 12. 2011 22:49)

bojovyletoun
Člen | 667
+
0
-

zkusil bych Session::setCookieParameters($path, $domain = NULL, $secure = NULL)