DEV: Přihlášení až po refreshi × PRODUCTION ok, ale nedrží expirace
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Tomáš Votruba
- Moderator | 1114
Mám opravdu podivný problém. Opravdu.
// přihlašovací funkce
public function login(Form $form) {
try {
$values = (array) $form->getValues();
$this->user->login($values["login"], $values["password"], $values["lang"]);
if ($values["permalogin"]) {
$this->user->setExpiration("+ 14 days", FALSE);
} else {
$this->user->setExpiration("+ 60 minutes", TRUE);
}
$this->redirect("Homepage:default");
} catch (\Nette\Security\AuthenticationException $e) {
// $form->addError($e->getMessage());
$this->flashMessage($e->getMessage(),"neg");
}
}
// authenticator jsem upravil dle vzoru aktuální verze, bez úspěchu
Chování:
- localhost,
Debugger::enable();
– pokud odešlu přihlašovací formulář, nic se nestane; přihlásí mne až po refreshi (F5) nebo kliknutí na nějakou stránku - localhost,
Debugger::enable(Debugger::PRODUCTION);
– přihlásí mne v pořádku, ale problém s trvalým přihlášením, vyprší po pár hodinách/dnech - ostrý – taktéž 2)
Zajímalo by mne, v čem se liší DEVELEOPMENT a PRODUCTION co se týče těchto přesměrování a přihlášení.
A také, proč mi nedrží session u uživatele. V boostrapu mám session takto:
// Session
$container->session->setExpiration("+ 30 days");
if ($container->session->exists()) {
$container->session->start();
}
- hAssassin
- Člen | 293
ten prvni pripad netusim, ale u toho druheho neni nahodou problem v podmince? cili nemelo by tam spis byt:
// Session
$container->session->setExpiration("+ 30 days");
if (!$container->session->exists()) { // == false
$container->session->start();
}
Editoval hAssassin (9. 1. 2012 3:34)
- bojovyletoun
- Člen | 667
Jen zkusím co mě napadlo: zkusit různé prohlížeče, případně dát session->start() nejřív vždy, pak zkusit jenom když if(session->exists). Nesouvisí to také možná s nedávnými změnami s regenerate?