Dva Nette weby na localhoste, zalogujem sa do jedného, prihlási ma aj v druhom

steelbull
Člen | 240
+
0
-

Mám na localhoste dva rozne weby v Nette. Zalogujem sa do jedného webu a som prihlásený aj v druhom. Ako to je mozne? Co mam upravit, aby som sa prihlasoval samostatne do kazdeho? V neone v klauzule session som pridal a nastavil name rozdielne v jednom aj druho webe. Ale stale je to to iste. Prihlasi ma na oboch.

Editoval steelbull (15. 9. 2017 19:32)

chemix
Nette Core | 1296
+
0
-

@steelbull apache?

JZechy
Člen | 161
+
+5
-

@steelbull V BasePresenteru mám ve startup jednoduchou řádku:

$this->getUser()->getStorage()->setNamespace($this->appspace);

Kdy appspace je proměnná z config.local.neon a nikdy se mi nepotkají napříč projekty přihlašovací údaje.

steelbull
Člen | 240
+
0
-

Funguje! Dakujem.

h4kuna
Backer | 740
+
+4
-

Nebylo by zajímavější to mít v neonu a ovlivnit přímo instanci když vzniká?

parameters:
	appspace: any_name

services:
	security.userStorage:
		setup:
			- setNamespace(%appspace%)

Editoval h4kuna (17. 9. 2017 14:14)

duke
Člen | 650
+
+5
-

Je to tím, že tvé aplikace sdílí složku pro session. Navrhované řešení přes $this->getUser()->getStorage()->setNamespace to řeší tak, že každá aplikace pak používá jinou část stejné session. To se může hodit, pokud mají ty 2 aplikace spolu nějak komunikovat přes session. Mají-li ale být nezávislé, bude vhodnější, když každá aplikace bude mít vlastní celou session. Toho docílíš nastavením vlastní složky pro službu session v konfiguraci (v souboru config.neon):

session:
	save_path: %tempDir%/session
duke
Člen | 650
+
+2
-

Ještě dodám, že další problém, který tím oddělením vyřešíš je to, že nastavení expirace session v jedné aplikaci, se ti nebude bít s nastavením expirace session v druhé aplikaci.