利用過濾器和cookie實現簡單的單點登入

2021-08-07 03:44:42 字數 870 閱讀 9996

單點登入就是我們開發乙個web系統時,會使用前後臺,後台各模組分離的成model的模式,所以乙個大的系統可能會分成很多web專案來寫,有同學會說:那就登入乙個就可以都訪問就好了,可是session正常是不能跨域的,也就是說在別的專案模組已經獲取不到你登入模組的session了,cookie也是相同網域名稱可以讀取,但是cookie可以設定domain(「.***/xx」)以「點」開頭,設定的域就能看見了,下面來看看具體實現。

一:在web.xml配置過濾器,確保登入後再進入別的專案時能第一時間讀取瀏覽器cookie並設定到session:

二:編寫登入**:獲取index登入頁的使用者名稱和密碼,驗證資料庫,這裡用的是dubbo呼叫後台service,如果驗證成功,把使用者主鍵和使用者名稱分別放入cookie,注意!因為使用者可能是中文,放入cookie時需要進行編碼設定,取出時也要進行相應的解碼。

三:編寫過濾器**,首先就是讀取cookies,通過判斷名字獲取使用者登入資訊,再次放入session中,注意!!!放入時進行了編碼,現在取出需要解碼。

四:正常從session中取出就好,我這裡通過js直接讀取cookie,也是需要解碼的,不過就一句話,decodeuri預設就是用utf-8解碼:

過濾器實現 (cookie認證)

cookie用來做身份認證,非常好用,只需要設定authentication和authorization就行了。但是 如果cookie不能用了,怎麼辦?不要緊,我們也可以用過濾器進行身份認證。using system using system.collections.generic using sy...

常用過濾器

去除空格 type 1 所有空格 2 前後空格 3 前空格 4 後空格 function trim value,trim 任意格式日期處理 使用格式 等 function formadate value,fmt if y test fmt fmt fmt.replace regexp.1 date....

使用過濾器

過濾器在資料從作用域傳遞到指令上時進行轉換,但並不改變源資料,這允許在檢視中顯示時能夠靈活地格式化或者轉換資料。angularjs具有兩種型別的內建過濾器 一類是對單個資料進行操作的,另一類是對資料集合進行操作的。用於單個資料的內建過濾器 currency 對貨幣值進行格式化,在過濾器名之後新增冒號...