2016-06-07 111 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