您必須使用數據庫。明確地說,你必須將會話存儲在數據庫中。如果您的域和所有子域讀取單個數據庫,則用戶可以從不同域訪問相同的會話。
默認情況下,HTTP客戶端(瀏覽器)不允許從跨域讀取cookie。所以你必須在你的cookie中明確地設置域名信息。
Let me explain clear,
讓我們假設,你有一個主要領域,即mymaindomain.com
和你有一些子域名可能subdomain1.mymaindomain.com, subdomain2.mymaindomain.com, subdomain3.mymaindomain.com, and more
現在,用戶登錄你的主要領域mymaindomain.com
。而你的應用程序設置會話cookie來識別用戶。默認情況下,瀏覽器檢查主機向請求發送cookie。在你的情況下,如果用戶移動到子域subdomain1.mymaindomain.com
,那麼瀏覽器只是嘗試創建新的會話。
要強制瀏覽器發送來自mymaindomain.com
的cookie,必須設置cookie的「Domain」屬性。在這種情況下,顯式域屬性正好是mymaindomain.com
。現在假設用戶移動到subdomain1.mymaindomain.com
,然後瀏覽器自動發送由mymaindomain.com
設置的會話cookie。
這是發生的,因爲這裏瀏覽器匹配突出顯示部分在以下子域subdomain1.
mymaindomain.com。
爲了讓您的應用程序獲得相同的會話cookie或用戶會話,並且其餘的工作應該照顧後端應用程序。同樣的域名限制也發生在您的後端。如果你想支持子域名瀏覽器請求,您的子域名的應用程序應該讀取數據庫這是常見的mymaindomain.com
和其他子域像subdomain2.mymaindomain.com, subdomain3.mymaindomain.com, and more
注會話信息:這不會工作,如果您的域名是完全改變,我的意思是瀏覽器不會發送會話cookie,如果你的主機域被完全改變。
本地主機Web應用程序是否連接到api.localhost服務器端或從瀏覽器? – hgoebl