Trvalé přihlášní nefunguje (opět)

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

Je mi jasné že se to zde řešilo už 1000× ale bohužel jsem nenašel řešení. Takže presenter pro přihlášní používám ten co je v sendboxu, takže tam by problém být neměl.

public function signInFormSubmitted($form)
	{
		try {
			$values = $form->getValues();
			if ($values->remember) {
				$this->getUser()->setExpiration('+ 14 days', FALSE);
			} else {
				$this->getUser()->setExpiration('+ 20 minutes', TRUE);
			}
			$this->getUser()->login($values->username, $values->password);
			$this->redirect('Homepage:');

		} catch (NS\AuthenticationException $e) {
			$form->addError($e->getMessage());
		}
	}

Config neměním, takže tam je také v sendboxu nastaveno

	nette:
		session:
			expiration: +14days

A přesto se mi mo nějaké době uživatel odhlásí. Na tom samém serveru mi běží jiný web kde to funguje OK (se starým nette). Takže v nastavení v php.ini to být nemůže. Kde jinde bych to mohl najít, aneb, jak postupovat? Škoda že se nedá u usera třeba dumpnout ->getExpiration(). Poradí někdo?

Tomáš Votruba
Moderator | 1114
+
0
-

Pokud máš hosting na savaně, nebo chceš ověřit, zda problém není v úložišti, můžeš zkusit tento postup.

Právě na získání expirace používám vlastní UserPanel

Ještě mě napadá přidat pod login logování informací o expiraci (teď přesně nevím, jak se získá), který by ti získal testovací data.

$this->getUser()->login($values->username, $values->password);
$this->model->userLogger->log($this->getUser()->identity));

Editoval Schmutzka (17. 7. 2012 11:13)

petr.pavel
Člen | 535
+
0
-

Asi ti to nepomůže, ale třeba přece. Kdysi se mi stalo, že nějaká chyba ve skriptu, co vyráběl obrázky, mi odhlásila uživatele. Než jsem na to přišel, tak to vypadalo, že se uživatel náhodně sám odhlašuje. Ve skutečnosti návštěva stránky s obrázky uživatele odhlásila – ale až těsně po vyrendrování stránky samotné. Myslím, že šlo tenkrát o to, že jsem v obrázkovém skriptu volal ručně session_start().