2 projekty 1 localhost – nemožnost být přihlášen na obou

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

2girls1cup nefunguje (pravděpodobně session, cookies)

Přihlásím se na projektu 1 a vše funguje. Stačí však refreshnout přihlašovací stránku na projektu 2 a odhlásí mě to na projektu 1. Být přihlášen na obou projektech neexistuje.

Session se ukládají zvlášť (každá do svého tempu).

session:
        autoStart: smart
        expiration: + 100 days
        savePath: %tempDir%/sessions

Napadá mě jen PHPSESSID, které se mění. Tak jestli si ho Nette někam neukládá a neporovnává ho s aktuální a když použiji jinou stránku, tak ho změní a tím dojde k odhlášení i na druhém projektu?

Být přihlášen na dvou by se mi hodilo, protože přepisuji starší projekt.

bazo
Člen | 620
+
+2
-

a mas to na roznych domenach?

Pavel Kravčík
Člen | 1182
+
0
-

Je to na localhostu. Dvě složky v rootu. Dvě různé databáze a ty projekty jsou na sobě 100% nezávislé.

Jediná věc, která mi napadla, že si ještě před definicí „temp/session“ něco Nette někam ukládá na „doménové“ úložiště. V tomto případě localhost.

Na ostré se to nikdy nestane, ale bylo by fajn, kdyby se to dalo nějak nastavit/opravit.

EDIT: Nebo myslíš, že by pomohl VirtualHost? To nerad nastavuji, jsem zvyklý na 127.0.0.1/xena/www :)

Editoval kzk_cz (3. 2. 2015 9:50)

Marek Šneberger
Člen | 130
+
+1
-

Mělo by stačit v nějakém Tvém BasePresenteru nastavit

$this->user->getStorage()->setNamespace('nazevProjektu'); // samozřejmě pro každý projekt jiný namespace :-)

A nebo z toho udělat VirtualHost :)

Editoval Marek Šneberger (3. 2. 2015 10:11)

Jan Tvrdík
Nette guru | 2595
+
+1
-

Je potřeba akorát změnit session name.

bazo
Člen | 620
+
+2
-

prepisuje sa ti cookie so session id. najlepsie riesenie su virtualhosty. user storage namespace je vhodnejsi ked chces oddelit prihlasenie napr do admin modulu od normalnych uzivatelov.

ked budes mat viac projektov, budes musiet v kazdom bude nastavovat session name, alebo ten namespace.
preto sa mi zda vhodnejsi virtualhost

Pavel Kravčík
Člen | 1182
+
0
-

Jasně, díky všem za rady. Udělám si VirtualHosty.

Myslel jsem, že něco jak píše Marek se děje automaticky.

Šaman
Člen | 2635
+
+1
-

Taky jsem líný dělat virtualhosty, ale protože mám na localhostu vždy stejného testovacího uživatele, tak jsem naopak přihlášený i v aplikaci, ve které ani nemám zprovozněnou přihlašovací stránku :)
Jen je potřeba o tomhle vědět a třeba při složitější práci se session ten virtualhost vytvořit.

Teď jsme ale nazazili na jiný zajímavý problém. V testovacím provozu už na ostrém serveru vzniklo několik účtů, po testovací době jsme vymazali databázi a najednou nám někdo zapisoval do databáze, i když daný uživatel neexistoval. To byl teprve hon na ducha :) A onen duch byl právě uložený v session. Někdo, kdo měl dříve testovací účet, zůstal přihlášený od minula (takže v tu dobu jako neexistující uživatel) a vesele pracoval dál. :)

Jan Suchánek
Člen | 404
+
0
-

@Šaman: a jak jste to fixli to by chtělo mít možnost odhlásit všechny uživatele, podle nějakého data?

Jan Mikeš
Člen | 771
+
0
-

Marek Šneberger napsal(a):

Mělo by stačit v nějakém Tvém BasePresenteru nastavit

$this->user->getStorage()->setNamespace('nazevProjektu'); // samozřejmě pro každý projekt jiný namespace :-)

A nebo z toho udělat VirtualHost :)

Stejne reseni pres neon:

services:
	nette.userStorage:
		setup:
			- setNamespace("AppName")
Jan Mikeš
Člen | 771
+
+1
-

@jenicek staci promazat sessions na serveru, osobne na to mame jednoduchy bash skript (clear cache a sessions), ktery se vola automaticky v ramci autodeploy (hook na git commit – pull a clear cache)

akadlec
Člen | 1326
+
0
-

co je těžkého na tom udělat vhosty? Na oknech otevřu jeden soubor s vhostama, zkopíruju, přepíšu, pak otevřu druhý a přidám lokální doménu. Restart serveru a jedu.

David Matějka
Moderator | 6445
+
0
-

Ja mam nastaveny dynamicky vhost, spusteny lokalni dns a vsechno jede hned beze zmen… ;)

Jan Suchánek
Člen | 404
+
0
-

@Lexi ok, jasný a kdybych to chtěl udělat nějak slušněji? Omlouváme se, ale byl jste odhlášen kvuli aktualizaci na serveru prosíme, přihlašte se do svého účtu znova … ?

Pavel Kravčík
Člen | 1182
+
+1
-

@jenicek: Přidal bych stav do tabulky uživatele. A při první kontrole session ho odhlásíš a k tomu přidáš flashMessage. Pak místo s prací „clear cache“ nastavíš všem uživatelům stav = ‚odhlasit+omluva‘.