最近一段時間需要和同學們采用前后端分離的方式完成一個小型的在線書城的項目。我本人在這次項目中主要負責登錄注冊模塊的開發,因為面臨着找工作的壓力,所以自己在原本登錄注冊功能的基礎上進行了一些功能上的補充以及技術方面的擴充。將初步的設計思路寫下來,給自己的后續開發工作定一個目標也希望可以為對這些問題感興趣的同學提供幫助。
整體的布局使用思維導圖的方式呈現:
圖1
接下來將分功能逐一進行簡要的說明:
Shiro框架部分的需求細化:
圖2
第三方接口:
圖3
登錄功能的實現可以通過基本的賬號密碼進行登錄;也可以在使用第三方接口的情況下進行快捷登錄(盡量模擬上線軟件的功能實現過程,做到盡可能的專業化:qq快捷登錄方式;微博快捷登錄方式;微信快捷登錄方式)還可以自己實現掃碼登錄(掃碼登錄的過程在今后的開發過程中進行說明)。
Shiro框架的實現部分:
圖4
依托shiro框架實現了部分功能:session管理;權限驗證;密碼加密(加鹽);退出系統。
分功能實現:
session管理部分的要點:
圖5
Session中存儲當前登錄用戶的信息,redis可以緩存session數據,例如用於異地登錄時權限數據。
權限管理部分:
RBAC模型:
圖6(來源 https://blog.csdn.net/yangwenxue_admin/article/details/73936803 )
密碼加密:
初步計划使用SHA 以及MD5 算法進行加密處理(數據進過前端加密后在進入后台進行二次加密)
圖7
密碼加鹽:
密碼加鹽的過程簡單實現為在密碼段后在加上一段字符進行拼接后進行加密。
退出系統時要清除當前登錄用戶的session數據。
注銷功能:
圖8
注銷功能是出於用戶角度考慮新增的功能項。
在用戶決定注銷系統賬號時 開始作用。參考一些軟件的模式,讓用戶選擇一些刪除用戶賬戶的理由以便改進系統。
退出系統:
圖9
主要在於用戶選定自動登錄功能的情況下session的處理方式。
我個人覺得在redis里存儲的角色信息出於下一次登錄的效率問題不應該刪除。
以上內容就是我所能想到的有關登錄注冊功能實現的一些要點,因為還是在校學生,並沒有接觸過真正的商業項目,所以在某些地方還有所欠缺,希望大家斧正。