Jedna session pres vic domen v ramci jednoho webu rubrika: Programování: PHP

5 kacerr
položil/-a 12.4.2014

Mam web aplikaci, ktera bezi na webserveru (1 instance) ktera obsluhuje vice domen
app.site1.com
app.site2.com
app.site3.com

Chtel bych aby uzivatel i kdyz se v ramci webu presune z app.site1.com na app.site2.com mel dostupnou stale stejnou session.

To samozrejme jen tak samo nejde, protoze session id je ulozene v cookies a ty browser pro kazdou posila jine. Podstatne je tez, ze to nejsou subdomeny na jedne domene, ale komplene odlisne host headery.

Resil tohle nekdo?

BTW: Session identifikator predavany jako get parametr neni reseni, ktere bych chtel pouzit

[UPDATE]: Mam proof of concept reseni, ktere je kombinace javascriptu prohlaseni jednoho z aliasu na serveru jako "master" a v pripade, ze cookie pro session_id se lisi od te, kterou pomoci JS dostanu z masteru, tak se na klientu zmeni tato cookie a stranka se reloadne. Zrejme to funguje, ale nevim jestli je to dost dobry reseni.

Komentáře

  • Vašek Ch. : IMHO tohle řešil Mall.cz svého času s bilezbozi.cz a dalšími doménami. A už to mají pod jednou střechou :-). 12.4.2014
  • ic : Řešit to lze, ale bohužel ne spolehlivě. 12.4.2014
  • kacerr : Muzes popsat nejaky reseni, ktery jsi pouzil/zkousel? I kdyz nevedly k cili nebo nebyly 100% spolehlivy? 12.4.2014
  • ic : Zhruba tak, že cookies ukládá jedna z domén a i na ostatních se ukládají/načítají z pořád té samé domény javasriptem/iframe. Tím se ovšem jeden dostává na rovinu reklamám cíleným podle zájmů, takže je potřeba udělat nějaké p3p a taky si nově podle sušenkového zákona na tohle vyžádat souhlas návštěvníka. Ovšem podle nastavení prohlížečů a jejich úrovně bezpečnosti tohle nebude ve všech prohlížečích fungovat. 13.4.2014
odkaz
7 Michal Kleiner
odpověděl/-a 12.4.2014

Řešení se jmenuje Single Sign On (SSO).

Komentáře

  • kacerr : Mne ani tak primarne nejde o "prihlaseni" i kdyz je to zrejme z casti je podobna uloha, ale o to, aby uzivatel co ma neco ulozeneho v session to mel k dispozici kdyz ke STEJNEMU WEBU (ktery ma vice aliasu) pristoupi pomoci ruznych aliasu. Tedy kdyz nad tim tak premyslim, tak krome toho, ze tahle tvoje "rada" je spis placnuti do vody nez rada, tak je navic dost mimobezna s tim na co jsem se puvodne ptal (mozna jsem se ptal blbe?) 12.4.2014
  • Michal Kleiner : Řešení na principu SSO je o tom, že se pro předání dat/session mezi doménami udělá nějaký roundtrip na místo, které má hlavní data, a zase se vrátí zpět. Ať javascriptem na pozadí nebo při první návštěvě stránky. Přihlašování přes tuhle jednu autoritu být řešeno může a nemusí. Ale dává to smysl. *** V podstatě to, co popisuje Václav i Taco, je to samé, akorát řečené trochu jinak. A taky sem nemyslel rovnou nasazovat nějaké celé SSO řešení, dá se z něj vyzobat co je potřeba nebo se inspirovat a ten roundtrip s předáváním informací na základě nějakého tokenu si napsat. 13.4.2014
  • siq : Tak isto SSO nemusi poskytovat len session identifikator, ale moze priamo poskytnut aj session data - zalezi aku architekturu pouzijes. Urcite je ale lepsie pouzit nejaky takyto vzor ktory uz existuje nez si bastlit nieco vlastne. Ja by som rozhodne siel do SSO riesenia. 14.4.2014

Pro zobrazení všech 8 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.