cookie共享於二級網域名稱

2021-08-26 04:04:28 字數 1101 閱讀 9883

糾結了半天,終於搞定了cookie在主網域名稱下各個二級網域名稱可共享問題.

對於任何web 前端技術,都可以對建立cookie並且可以修改同域下cookie的資料.

乙個cookie是乙個k-v的字串,同時可以傳遞一些屬性.

cookie cookie = new cookie("key","value");

cookie.setmaxage(-1);

cookie.setdomain("abc.com");

cookie.setsecure(false);

cookie.setpath("/")

乙個cookie如上4個重要的屬性:

1)maxage:cookie被客戶端保持的時間,單位為(秒),正數表示在指定的秒數後過期被客戶端刪除,0表示刪除此cookie(置空),負數則表示此cookie不會被客戶端儲存,將在瀏覽器關閉後清除.

2)domain:cookie可被有效操作的域,可以為ip/hostname等,不過需要宣告:*.abc.com,.abc.com,abc.com這三種方式會有區別,客戶端會做簡單的匹配.多數情況下直接使用abc.com可以接受多級子網域名稱.只有正確匹配domain的cookie才會被傳送給server.

3)secure:是否只允許安全加密url訪問,預設為false,如果為true,那麼cookie只對https/ssl等加密連線才會傳送給server.

4)path:cookie對domain何路徑下訪問有效,"/"表示domain下根目錄中所有請求有效,"/open"表示只對domain/open目錄下請求有效,如果此path忘記設定,你將遇到乙個很尷尬的問題:明明在其他頁面設定了cookie輸出,但是換個頁面卻死活不行..

domain和path是決定可跨域的2個引數.

對於domain,"abc.com"則可以在abc.com主網域名稱之下的多級子網域名稱有效,".abc.com"只能在二級網域名稱以及"www.abc.com"下有效,其實客戶端只是做了簡單的匹配..你可以在此基礎上做更多的分級控制..

path是個有參考意義的屬性,對於部分路徑下開放訪問的系統有意義,比如:abc.com/open下的程式和登入是開放給特殊開發者接入的,這裡的資料活著cookie需要做一些另類的處理..

二級網域名稱共享cookies

如 現在有乙個站 www.abc.com 子站 123.abc.com 希望從主網域名稱登入,或者從子域登入可以同步,也就是說 只要從任何乙個站下登入都可以不在在另乙個站登入 網上介紹了很多方法,我都試過了,都不行,主要原因是 不能清除cookies,最後我沒有辦法了,就放棄不搞這個了,晚上看電影 ...

基於二級網域名稱下Cookie共享的SSO

網上已經有很多基於二級網域名稱下cookie共享的sso的解決方案,對於原理大家可能都很了解,無非就是登入乙個系統,產生乙個令牌儲存到client端的cookie中,這個cookie是基於主網域名稱的,然後再登入其它二級網域名稱下的系統,就會直接讀取主網域名稱下的cookie中的令牌,不要重新登入,...

二級網域名稱session 共享方案

1.利用cookie存放session id 例項 網域名稱一檔案php session start setcookie session id session id time 3600 24 365 10,session.com session user name 梁山良民 echo session...