Spring mvc session cookie實現自動登錄


設計過程

1. user表存儲用戶名密碼等信息,login表存放用戶登陸狀態的表

user表中存儲username,pwd,等信息

login表存username,series(UUID),token(過期時間,用戶名,密碼 加密后數據),  validTime 過期時間。

 

2.調用用戶登陸接口並且用戶名密碼驗證成功之后,

a.計算登陸最大過期時間

b.生成token,(我是用過期時間+用戶名+密碼+鹽)

c.生成cookievalue(用戶名+UUID 並加密,格式自定義,方便取用戶名和UUID就行,我是username+"_"+UUID)

d.查詢登陸記錄表,是否有登陸過。沒有登陸,則插入登陸記錄,有登陸記錄,則更新series,token,過期時間。

f.添加cookie 到response cookiename(自己設定)  cookievalue 即c

g.登陸成功后,可以把用戶相關信息存入session,防止出現禁用cookie設置,這樣可以在瀏覽器沒有關閉的時候,使用session訪問。

 

3.定義登陸攔截器,攔截除了登陸之外的所有接口(可以按照個人需求去攔截)

a.先找session中用戶,如果能找到,則直接訪問,如果找不到,取cookie->b

b.根據自定義的cookiename取到cookievalue后,解密后,字符串分割得到用戶名和UUID

c.使用用戶名和UUID查到登陸記錄,判斷當前時間是否在過期時間之前,如果過期,刪除cookie后則重新登陸,沒過期的->d

d.根據用戶名查到用戶信息,取到用戶名密碼,加上登陸記錄中的過期時間,計算一把新token(因為修改密碼后,需要重新登陸),新token與登陸記錄中的token進行比較,不同則刪除cookie后重新登陸,相同->f

f.token相同基本登陸驗證已經完成了,再去數據庫更新登陸記錄表,把series,token,過期時間更新

j.把用戶信息寫進session中即可。

結束。


免責聲明!

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



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