前後分離 redis實現單用戶登錄限制(用戶僅可以在一處登錄)

token設計:

	username+”,”+userId+”,”+IP+”,”+loginTime

redis存儲K-V:

	key:username+”,”+id
	value: ip+”,”+loginTime

登錄實現:

  1. 前端傳參username,password;
  2. 通過username查出user,得到userId和加密密碼;
  3. 初始化boolean flag=false,構造key:username+”,”+id,在redis中查詢記錄,若成功查到結果(即ip+loginTime),則解析字符串,將ip和loginTime放在一個map中,設置flag=true;
  4. 密碼比對,若比對成功,構建token,然後判斷flag,若爲true,將token加到map中,並添加提示語,再將map返回,若爲false,則直接返回token。

此時前端能夠拿到用戶上一次的登錄信息,根據業務需求做動態處理。

token只需要對前端加密,redis中的信息可以明文存儲。

token驗證與註銷

拿到token解密得到username+id+ip+time,拆分得到key,查詢value,進行比對或者刪除即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章