SESSION a cookie_domain, na co presne?

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

Prosím o radu,

predelavam jednu starsi aplikaci v bootstrapu jsem nalezl tento kus kodu, který me znemoznoval prihlaseni do aplikace na localhostu, kde mam mimo jine i jiné projekty v aresarich take na NETTE v jinych verzich. I presto, ze je komentovany, moc prosim nekoho o male vysvetleni.

Zkousel jsem projekt i aliasovat na Apachi, ale presto proste cookies nefungovali. Rad bych vedel proc.

Predem dekuji

$session->setOptions(array(
       'cookie_domain' => '.' . Environment::getVariable('domain'), // cookie i pro subdomeny
));
Jiří Nápravník
Člen | 710
+
0
-

Nastaveni cookie_domain (na .example.com) znamena, ze kdyz se nekdo prihlasi na adrese napr. admin.example.com, tak jeho rpihalseni bude i na example.com, sub.example.com a dalsi subdomeny. Pokdu ot nepotrebujes, tak to muzes bez Problemu smazat. Pokud potrebujes, tak to chce si na lokale udelat vlastni virtualhost napr. superprojekt.home, dat ho do hosts filu, at ti smeruje na 127.0.0.1 a nastavit pak cookie_domain na lokale na .superprojket.home

MW
Člen | 626
+
0
-

Diky !
Pouzim na vyvoj WAMP a projekty mam v adresářích a ani jsem nidky nepouzil alias, nidky zadny problém.. az na nejaky autostart pro session.

Proto me to zarazilo, proc nebylo mozne se prihlasit.. ani nemam na Apachi nastavene subdomains typu xxx.domena.cz natoz xxx.localhost … zatím nebylo potřeba to resit…

Takze proc to vlastne neslo? :-) chápu, na co to tedy je.. ale proc se to michalo s jinými cookies? I když jsem udelal alias, tak v getVariable(‚domain‘) byl ‚localhost/xxx‘…

A nevis, jak pripadne nastavit funkcnost tech subomen typu xxx.localhost tak, aby to valilo i na ostrem hostingu? Přes routy nebo to lze i primo na apachi? Resil to někdo?

Diky!

Editoval MW (18. 6. 2014 23:17)

Jiří Nápravník
Člen | 710
+
0
-

Nejak se ztracim a nechapu:-)

Environment::getVariable vraci pokud dobre koukam (Environment nepouzivam) parametry, ktery jsou v DI kontejneru. Ci-li je to podobne jako to delam ja.

Mam config.neon a tam mam neco takoveho:

production:
	parameters:
		domain: example.com
development:
	parameters:
		domain: example.home (pripadne example.localhost - tj jedno, jak si to udelas, to .home je v podstate domena prvniho radu - jako .cz)

no a pak si v router vytahnu ten parameter na lokale mi to vrati ten z developmentu, na production ten produkcni, ci-li routy mam poresene. A v session cookie_domain mam nastavenou v neonu jako

common:
	nette:
		session:
			cookie_domain: .%domain%
MW
Člen | 626
+
0
-

No ja si myslel, ze kdyz tam mam vice projektu a jen v podadresarich, tak se michaj cookies pres sebe, ale ty projekty jsou v novejsich verzi nette a tak jsem nemel dosud problem. Jen toto je verze 1.0 nette a tak jsem nepochopil proc tento kus kodu dela problem s cookies i kdyz mu vlastne nastavuji domain. To nevim :-)

Jiří Nápravník
Člen | 710
+
0
-

A ty dalsi projekty jsou na subdomenach? Pokud ano a nastavujes u nich cookie_domain .example.com – tak pak to logicky bude delat bordel, protoze ta sessiona se potom bude nastavovat i pro ty dalsi projekty na subdomenach.

Pokud mas projekty, ktery nepotrebuji mit session platnou i na ostanich subdomenach, tak ji smaz, protoze je tam zbytecny ten radek

MW
Člen | 626
+
0
-

Vsechno je to vlastne na domene localhost … nikde to nenastavuju a jsou jen v adresářích localhost/projekt1, ani alias na to nedelam a vsechno funguje…

ukladaji se tedy cookies pro domain localhost, ze?

A když tam necham ten radek, nastavim domain localhost/projekt1, tedy bych mel oddelit od ostatnich projektu nebo ne? Presto to nefungovalo a to me mate :-)

Nebo localhost takhle nefunguje?

Moc se omlouvam, ale asi to chápu blbe.. a nebo localhost se musí nastavovat jinak…

Jiří Nápravník
Člen | 710
+
0
-

localhost neni domena, localhost je proste localhost a tam se ani snad zadna cookie_domain nastavovat neda.

V tom pripade bych to asi opodminkoval, pokud je adresa serveru 127.0.0.1 pripadne server_name localhost, tak at se tam ta cookie_domain nenastavuje

to bude asi nejlepsi. ja na localhost/xxx nepracuji, delam si ty „vlastni“ pres virtual hosty

MW
Člen | 626
+
0
-

Takze virtualhostem myslis jen nastaveni v hosts filu?
Asi to bude reseni…

Diky !!!