2016-06-07 171 views
1

我需要共享之间的会话: domain.com, sub1.domain.com sub2.domain.comPHP/Laravel:在每个域的子域共享会话

而且他们必须与其他领域合作。 例如,如果我选择session.domain =“.domain.com” - 会话不会‘another.com’

由于工作

+0

会议的URL依赖他们无法跨域 –

+2

共享@VijayanandPremnath这是不正确的。会话绝对可以在各个子域之间共享和保留。他们不能在不同的域中共享。重要的是要做出这种区分。 – Ohgodwhy

+0

可能的重复:http://stackoverflow.com/questions/19531183/set-cookie-on-multiple-domains-with-php-or-javascript – activatedgeek

回答

0

,因为他们被锁定在您不能共享跨不同域的会话会话cookie域设置。

** can **根据您可以存储在Redis(服务器端)之类的Cookie值检索关联的数据。它所需要的是一些通用的标识符(例如用户ID),可以被另一个域客户端(通过JavaScript)读取。

麻烦的是将值从一个站点传递到另一个站点,甚至是另一个子站点。您需要一个中央集线器来连接存储这些值并且是cookie域的始发者。您可以通过引用存储在第二个域中的cookie值并根据存储的值传回数据(例如通过ajax)将某些详细信息从一个域传递到另一个域。

Origin (Hub) Domain: cookie.domain.com 
Subdomain 1:   subdomain1.domain.com 
Subdomain 2:   subdomain2.domain.com 
Different Domain: www.differentdomain.com 

Cookie Domain:  cookie.domain.com 
JavaScript Domain: cookie.domain.com 

这样,JavaScript可以读取cookie.domain.com存储的cookie,那么与当前页面源自于当前客户端会话,甚至在服务器/域交互。

如果你看看Facebook/Twitter如何注入他们的脚本和cookies,它们来自同一个域/子域(这就是我对以前项目的看法)。

Facebook Cross Domain Login Toolkit