Občas prostě nejde přihlásit (SimpleAuthenticator, wedos)

jiristepanek
Člen | 2
+
0
-

Zdravím, mám takový problém. Nejsem žádný velký programátor. Web mi museli pomáhat programovat 2 další lidé a tak prosím o trpělivost :D. Na webu máme pouze jednoduchý formulář co zpracovává platby. Všechny zápisy pak ukládá do tabulky na kterou se dostanu po přihlášení do naší „administrace“.

99% času vše funguje tak jak má. Na localhostu ve 100%. Vadí mi ale to jedno procento kdy náš web prostě blbne.

Stává se toto:

  • z administrace mě to jakoby odhlásí a hodí mě to na screen kde mám 2 inputy na heslo a jméno (klasicky po prvním přihlášení na počítači bych ale už měl být správně přihlášený napořád – takhle nejsem)
  • když se chci přihlásit znovu, nic se neděje. Stránka se jakoby refreshne ale nehodí mi tam žádný error (kontoloval jsem přes takovou tu Tracy)
  • mezitím platby z našeho formuláře dál odchází bez problému. Pouze přihlášení do administrace je to co blbne.
  • po cca 5–10 minutách se vše ÚPLNĚ SAMO vyřeší. Najednou po přihlášení přes heslo a jméno mě to hodí zpět na tabulku (administraci) kde zůstanu X dní do dalšího „výpadku“.

Zkoušeli jsme zatím toto abychom vyřešili:

  • vymazat cache (bez významu)
  • zkontrolovat error logs na wedosu (nic)
  • na cloudflare dočasně vypnout cache (bez významu)
  • najmout dalšího profi programátora aby zkontroloval kód řádek po řádku (prý je vše ok)

Upřímně už opravdu nevím kde je problém. V našem kódu doufám, že ne (tím, že se to samo od sebe spraví za pár minut a na localhostu běží bez problému). Pak tu máme ten wedos který tvrdí, že to nechápe. A cloudflare kde jsou všechny non-essential funkce vypnuté. Nenapadá Vás kde by mohl být ten problém? Pokud mě někdo dobře nasměrujete tak budu strašně vděčný!

Díky!

Jirka

Kamil Valenta
Člen | 844
+
+1
-

Asi bych zaměřil pozornost na:

  • cookies v prohlížeči (její podobu a expiraci)
  • session na serveru, kdy expiruje, kdy ji kdo a jak fyzicky odmazává (zda se třeba to nezdařené přihlášení netrefí zrovna do nějaké cron úlohy)

Editoval kamil_v (30. 4. 2020 16:50)

jiristepanek
Člen | 2
+
0
-

díky, mrknu na to

thm
Člen | 151
+
0
-

Čauves, podařilo se to nějak vyřešit?

Mám stejné problémy na Wedos. Na localhostu bez problému, na Wedos po přihlášení se „částečně“ přihlásím. Například zobrazí se mi hlavní menu – kde se menu zobrazí {if $user->isLoggedIn()} {* Menu *} {/if}, ale přesto mě to přesměruje na sign:in.

class SecurityPresenter extends OrganizationPresenter
{
	public function startup(): void
	{
		//Ověříme, jestli je uživatel přihlášený, pokud ne, přeměrujeme ho na přihlašovací stránku
		parent::startup();
		if(!$this->user->isLoggedIn()){
			$this->redirect('Sign:in');
		}

		//Další kód
	}
}

Editoval thm (9. 9. 19:24)

BigCharlie
Člen | 285
+
+1
-

Matně si pamatuju, že jsem kdysi dávno s Wedosem řešil něco podobného. Nějak to souviselo s cache u wedosu. Ale detaily už se mi vykouřily z hlavy.

Zkus do odpovědi dát hlavičky pro zákaz cachování – jestli to nepomůže…

Editoval BigCharlie (9. 9. 21:56)

Pavel Kravčík
Člen | 1206
+
+2
-

Taky už jsem od nich odešel, ale řešil jsem to asi stejné pár let zpátky, tohle jsem ještě dohledal v kódu. Snad pomůže:

<IfModule mod_headers.c>
	<FilesMatch ".(php)$">
		Header set Cache-Control "no-cache, no-store, must-revalidate"
		Header set Pragma "no-cache"
		Header set Expires 0
	</FilesMatch>
</IfModule>
thm
Člen | 151
+
0
-

@BigCharlie Díky moc. Nastavil jsem do BasePresenteru $this->getHttpResponse()->setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); a zatím mi to funguje správně. Potýkal jsem se s tím každý den (různé prohlížeče reagovaly různě a třeba po chvíli klikání to začlo fungovat správně).

Nevím, jestli bych no-cache neměl nastavit jenom třeba při zpracování přihlášení. Nevím, co tím ztratím, pokud to bude nastavené pro celou aplikaci.

V každém případě moc díky!

Editoval thm (10. 9. 8:34)

Marek Bartoš
Nette Blogger | 1313
+
0
-

Nevím, co tím ztratím, pokud to bude nastavené pro celou aplikaci.

Náhodné chyby.