分布式專案 cookie共享方案

2021-10-01 22:45:21 字數 1134 閱讀 2176

cookie域:

setdomain:設定cookie域,指的是訪問某個域的時候,才會帶入cookie,訪問其他域,不會帶入cookie。缺省會禁止該設定,因為安全性較差,如,訪問baidu.com,baidu.com寫乙個域是google.com的cookie,那麼訪問google.com的時候會帶入baidu.com的cookie,從而會實現攻擊的效果。

方案1.手動設定cookie的domain和path(適用於同域或同ip的多專案 或 同nginx**的多個專案)

首先要了解cookie作用域,這裡就用到了cookie的兩個屬性 domain,path。當請求與cookie的網域名稱相同且作用路徑相同的時候,瀏覽器才會攜帶cookie才可以實現cookie共享。domain 這個屬性可以設定cookie的作用網域名稱,path可以設定cookie的作用路徑。cookie丟失時考慮其網域名稱,路徑,有效期,是否和當前請求匹配

現在有a,b兩個專案,我希望在a專案登入後在b也能保持登入狀態就需要把使用者資訊存入cookie,那這時候b就要獲取a的cookie,首先專案域分別是a.test.com和b.test.com沒有(網域名稱是要給domain賦值用的)所以沒有網域名稱的話去修改下host檔案把 a.test.com [a專案ip],b.test.com [b專案ip]

注:分布式系統的cookie的共享問題。這個將cookie的屬性domain設定成全域性共享即可。即不同的子系統的網域名稱是不同的,sso.taotao.com;search.taotao.com;我們需要將其網域名稱設定為.taotao.com,這樣可以實現cookie的共享。**

這個時候去瀏覽器檢視你的cookie你會發現展示的domain和path都是你設定的了。就這樣就可以實現cookie共享了

這個方法簡單但是有乙個弊端 就是你的專案必須是同乙個主網域名稱才可以。(例如:a.test.com和b.test.com,主網域名稱就是.test.com)

或是nginx作為主網域名稱**,欺騙瀏覽器攜帶cookie,nginx再**給後端各個專案。但是無法保證第三方jar中都這樣設定cookie。

經測試sessionid的路徑預設就是"/",只要網域名稱相同全路徑攜帶,可以直接共享

分布式專案 cookie共享方案

方案1.手動設定cookie的domain和path 適用於同域或同ip的多專案 或 同nginx 的多個專案 首先要了解cookie作用域,這裡就用到了cookie的兩個屬性domain,path。當請求與cookie的網域名稱相同且作用路徑相同的時候,瀏覽器才會攜帶cookie才可以實現cook...

分布式專案 cookie共享方案

手動設定cookie的domain和path 適用於同域或同ip的多專案 或 同nginx 的多個專案 首先要了解cookie作用域,這裡就用到了cookie的兩個屬性 domain,path。當請求與cookie的網域名稱相同且作用路徑相同的時候,瀏覽器才會攜帶cookie才可以實現cookie共...

分布式專案 cookie共享方案

方案1.手動設定cookie的domain和path 適用於同域或同ip的多專案 或 同nginx 的多個專案 首先要了解cookie作用域,這裡就用到了cookie的兩個屬性domain,path。當請求與cookie的網域名稱相同且作用路徑相同的時候,瀏覽器才會攜帶cookie才可以實現cook...