Nechtene sdilene prihlaseni pro vice projektu

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

Jak co nejlepe/nejelegantneji zabranit sdileni prihlaseni mezi vice Nette projekty na stejnem serveru? Premyslel jsem o zmene save_path u session, ale pak bych si musel sam zaridit rezii session a to nechci. Pouzivam nejnovejsi verzi Nette.

pave.kucera
Člen | 122
+
0
-

Použij sekce, viz https://doc.nette.org/…ttp/sessions#… pro obecnou dokumentaci a https://doc.nette.org/…thentication#… kde je přímo ukázáno, jak nastavit sekci session uživatele.

enumag
Člen | 2118
+
0
-

Hlavní problém je, jak udržet přihlášení napříč více doménami. Změnit session save path imho nestačí, protože potřebné PHPSESSID cookie bude mít jen ta doména kde se uživatel přihlásil. Řešení neznám, protože jsem to ještě nepotřeboval, ale též by mne toto téma zajímalo.

EDIT: Pardon, špatně jsem si přečetl dotaz. :-)

Editoval enumag (25. 12. 2012 19:22)

pave.kucera
Člen | 122
+
0
-

@enumag: rv nechce přihlášení sdílet, naopak mu chce zabránit a k tomu stačí změna „jmenných prostorů“ session.

rv
Člen | 6
+
0
-

@pave.kucera: diky za hint. Nicmene mi to nefunguje korektne, problem asi bude, kde nastavuji ten namespace. Mam ho na dvou mistech: 1) pred tim, nez zavolam $user->login() a za 2) v BasePresenter, ze ktereho dedi vsechny presentery, v metode startup.

Kdyz se prihlasim, tak debug bar vypise spravne Identitu, ale aplikace se chova, jako kdybych nebyl prihlasen. Nevis, kde muze byt problem?

David Matějka
Moderator | 6445
+
0
-

dej si pozor, pokud overujes to, jestli je uzivatel prihlasen, v metode checkRequirements. ta se totiz poprve zavola pred spustenim startup metody , takze je potreba nastavit namespace tam.

rv
Člen | 6
+
0
-

@matej21: diky moc, byl to presne ten problem, co popisujes. Delam v Nette prvni projekt, tak mi nektere veci jeste unikaji.

Nyni jsem dal nastaveni namespace jenom to te metody checkRequirements(). Je to vhodny zpusob? Pripadne kam to nejlepe umistit?

pave.kucera
Člen | 122
+
0
-

Do konfigu. Píšu z hlavy bez zkoušky, ale snad to pojede:

services:
	nette:
		security:
			userStorage:
				setup:
					- setNamespace('myAwesomeNamespace')
enumag
Člen | 2118
+
0
-
services:
	nette.userStorage:
		setup:
			- setNamespace('myNamespace')

Editoval enumag (26. 12. 2012 0:56)

rv
Člen | 6
+
0
-

Diky moc vsem, funguje to a je to snad na dobrem miste :).