1. 程式人生 > >java web 筆記(二):登入認證系統

java web 筆記(二):登入認證系統

講完cookie和session(沒看過前一篇部落格的建議先看前一篇),現在簡單討論下登入系統。
簡單的單獨專案登入系統可以做的很簡單,只是用cookie和session就能實現;複雜的登入系統如SSO等可以做的很複雜,需要考慮使用各種認證防資料捕獲等情況。

這裡簡單介紹下多系統非SSO登入認證系統。

在公司內部有這樣的需求:公司內部有許多平臺(可以理解為專案),但這些平臺沒有實現登入的功能,現在需要提供一個統一的登入系統共這些平臺接入,並登入。
統一的登入認證系統

和傳統的單系統不同,該登入認證系統是單獨的一套系統,即登入系統獨立於專案。

從大體上來說,這樣的登入認證系統需要提供以下三個最基本的功能:

  • 登入
  • 認證
  • 登出

我們把單獨的登入認證系統就稱為登入系統,接入的專案稱為平臺
具體流程如下:

  1. 瀏覽器輸入平臺的主頁面,由於平臺未發現記錄使用者的資訊,因此攜帶該平臺的url導向到登入系統登入頁面
  2. 使用者登入,登入成功,登入系統根據第一步傳來的url再導回到平臺主頁
  3. 平臺檢測到了攜帶使用者的資訊,但不確定該資訊是否正確,因此呼叫登入系統認證功能,核實該資訊
  4. 核實通過,登入系統返回結果給平臺平臺儲存該資訊,下一次再訪問該平臺時,由於平臺已經儲存了使用者資訊,因此不用呼叫登入系統認證功能,直接在其內部比對
  5. 登出時,呼叫登入系統的登出功能,成功後清除平臺儲存的使用者資訊。

在只是用cookie和session的基礎上,設計的具體序列圖如下:
這裡寫圖片描述

筆者有一份簡單的程式碼,但寫的很爛,就不貼出來了。。。