Unikátní session pro každou aplikaci

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

Narazil jsem na problém způsobující nefunčnost aplikace pokud na stejném stroji běží dvě aplikace postavené na Sandboxu s defaultním configem. Vznikl kombinací nevymazání posledních přihlášených identit a společné session. Už to někdo řešil zde, ale toto vlákno je uzavřené. Proto se chci podělit tady s fičurou, kterou jsem objevil metodou pokus-omyl. Vypadá to, že lze v Nette nastavit unikátní session pomocí parametru name v configu:

<script>
	session:
		autoStart: true
		expiration: 14 days
		name: jmenoAplikace  <---
</script>

Je nějaký důvod nepoužívat pojmenované (unikátní) session? Případně nebylo by vhodné tento parametr zavést do Sandboxu?

Šaman
Člen | 2668
+
0
-

Jestli jsem to správně pochopil, tak tohle dělá trochu něco jiného. Nastavuje to session pro uložení identity. Nenastane pak ale stejný prolém, pokud budu do Session ukládat nějaká data? V jedné aplikaci si nastavím třeba $theme = 'black' a druhá mi vyhodí chybu, protože žádné černé téma nezná, ale přitom používá stejnou fučuru pro pamatování témat.

Skutečně cítim větší pocit jistoty a bezpečí, když vím, že každé session jsou pro každou aplikaci unikátní. A pokud bych chtěl mezi uživateli session sdílet, tak stále mohu nastavit namespace. Anebo mi něco uniká – v dokumentaci jako obvykle moc informací není.

enumag
Člen | 2118
+
0
-

Jo, asi máš pravdu. Teď když nad tím přemýšlím tak to UserStorage namespace je spíš pro případ že máš v jedné aplikaci 2 moduly s naprosto oddělenou autentizací a identitami (ne že bych se s takovým případem v praxi setkal).

creveta
Člen | 6
+
0
-

@enumag: Typický možný prípad pre 2 moduly s úplne oddelenou autentizáciou (a identitami) je rozdelenie pre frontend a backend (zákazníci a užívatelia – 2 tabulky v DB)

@Šaman: máš konkrétnu požiadavku(y) prečo to musia byť 2 oddelené sessions? Ja používam jednu session pre oba moduly s príslušými sekciami a zatiaľ som nepostrehol negatíva. Opravte ma ak som na niečo zabudol.

Šaman
Člen | 2668
+
0
-

Já nemám dva moduly, mě se teď na localu prostě načetly neznámé role z nové aplikace (zkoušel jsem ACL GUI) do staré aplikace a já si lámal hlavu proč mi najednou hází výjimky, když to bylo odladěné a serveru to běží. Ve svých aplikací sekce nepoužívám, takže jsem to vyřešil přidáním toho řádku co configu. A napadlo mě, že to už budu používat jako best practise, pokud mi tu někdo nevysvětlí, proč bych neměl.

enumag
Člen | 2118
+
0
-

@creveta: O tom samozřejmě vím, ale považuji to za špatnou praktiku. Raději to řeším autorizací.

@Šaman: Mnohem lepší by bylo nastavit si localhost tak abys to měl na různých (sub)doménách, potom se ti ty sessions nebudou mezi sebou překrývat.

Editoval enumag (29. 1. 2013 19:48)

Šaman
Člen | 2668
+
0
-

@enumag: Díky, to je ono. Nedošlo mi, že na ostrém serveru by se to stát nemělo právě protože aplikace běží na různých doménách. :D

Zrušte poplach, zachovejte paniku.

Editoval Šaman (29. 1. 2013 19:47)

enumag
Člen | 2118
+
0
-

Šaman napsal(a):
Zrušte poplach, zachovejte paniku.

XD

creveta
Člen | 6
+
0
-

@enumag: Díky moc za link, preletel som článok a argumenty hovoria jasne. Mne sa tiež nepozdávala myšlienka pre 2 tabuľky a 2 autentikátory, radšej by som to riešil normalizáciou len vo mne doteraz prevládala temná strana :D