Unikátní session pro každou aplikaci
- Šaman
- Člen | 2668
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
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í.
- creveta
- Člen | 6
@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
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
@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)