我們訪問客戶端的鏈結為http://localhost:8081/gateway/login, 那cookie的域就是http://localhost:8081/。當cas客戶端重定向到cas服務端進行單點等會後,cas服務端單點登入的鏈結為http://localhost:8080/cas/login,那cookie的域為http://localhost:8080/cas。客戶端與服務端的域不一致,導致使用者在服務端登入成功後,並跳轉回客戶端,服務端產生的cookie都丟失了,丟失了tgc,首先影響的就是記住密碼功能,因為記住密碼的功能主要是依賴tgc去做快取的,tgc都沒有記錄,那記住密碼的功能就廢了。
利用nginx反向**客戶端以及服務端,讓他們都在同乙個域,這樣cookie就不會丟失了。
nginx.conf配置客戶端以及服務端的反向**,配置如下:
server
location ^~ /gateway/
location /
error_page 500 502 503 504 /50x.html;
location = /50x.html
}
#注意,這個/gateway的配置需要和nginx對應上。並且也需要配置上此引數,否則cas client在進行st認證時,cas服務端會返回無效的st票據。
server.servlet.context-path=
/gateway
#localhost實際為網域名稱,根據第一步的nginx配置的設定值
啟動nginx以及重啟cas client後,訪問cas客戶端的url需要修改一下了,修改為nginx配置的路徑。我們重新登入後,檢視一下cookie是否記錄了tgc,看下圖:
由圖可知,cookie的域統一為http://localhost/,並且也記錄了tgc,至此,問題解決。
Cookie 解決Cookie跨域訪問
隨著工程的不斷擴大,要部署很多不同的服務,這其中就避免不了cookie的跨域問題,如何實現cookie在不同域之前實現傳輸,本文將詳細描述。1 path cookie的域我們如果不設定的話,預設是當前工程,例如 那麼它的域為www.test.com,通過domain我們可以設定cookie的域 通過...
解決跨域cookie共享
首先了解一下cookie,cookie有三種型別。第一種,當setcookie不設定過期時間時,cookie儲存在客戶端 記憶體中。關閉瀏覽器即實效。也叫 會話cookie,第二種是設定了過期時間。cookie儲存在客戶端的硬碟中,只有cookie過期的時候才過期,存在硬碟中的cookie,不同的瀏...
Cookie 跨域解決方案(IFrame跨域)
iframe跨域思路 假設有a.haorooms.com text.html和b.haorooms.com text.html兩個頁面,通過a.haorooms.com text.html頁面去修改b.haorooms.com text.html頁面的本地資料 在a.haorooms.com tex...