同頂級域名下 通過Cookie 跨域實現單點登陸


Cookie對於web開發者而言真是一個小甜餅,因為它保留了用戶的登錄狀態。但是當登陸站點在不同域名時就會出現問題了。

在Cookie規范上說,一個cookie只能用於一個域名,不能夠發給其它的域名。因此,如果在瀏覽器中對一個域名設置了一個cookie,這個cookie對於其它的域名將無效。如果你想讓你的用戶從你的站點中的其中一個進行登錄,同時也可以在其它域名上進行登錄。

一、修改hosts文件,搭建環境

首先,在我的電腦找到hosts文件,路徑如下C:WindowsSystem32driversetc。

然后,用記事本打開hosts文件,添加你想測試的域名2個。

如a.test.com 和b.test.com。

這樣,我們本地瀏覽器訪問a.test.com和b.test.com,都會將訪問地址指向本地。

二、COOKIE操作類實現

CookieUtil實現了對cookie基本操作:

首先:添加cookie。

然后:刪除cookie。

三、在登陸控制層,當登陸成功,創建cookie

注意:此處要在兩個web項目中都要實現,一樣的代碼即可。

四、在登陸跳轉時,首先檢測session存在否,然后檢測cookie存在否

首先:檢測session存在,如存在說明本系統登錄過,直接跳轉到系統內部。

然后:檢測cookie存在,如存在cookie,取得cookie中的用戶信息,在后台實現登陸操作即可。

String cookie_login = CookieUtil.getValue(request,Constant.COOKIE_LOGIN);//獲取cookie中的登錄名

String cookie_pwd = CookieUtil.getValue(request,Constant.COOKIE_PWD);//獲取cookie中的密碼

最后,在tomcat中將兩個域名和兩個項目對應綁定即可。

注意:cookie要實現加密。否則被人竊取就不好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM