Redis 以及 Session 實現使用者登入的整體流程
阿新 • • 發佈:2019-01-08
說在前面
簡單總結一下專案中登入的整個流程。
其中包含
- 使用者登入失敗次數
- 使用者資訊儲存
- 請求Url攔截
使用者登入失敗次數
定義一個次數限制的介面:
定義一個類,單獨把RedisUtil抽離:
最後定義一個密碼錯誤計數限制策略類,去繼承 AbstractCountLimit,並實現CountLimitStraStrategy,類中有以下三個方法:
/**
* 密碼登入最大錯誤限制
*
* 10分鐘內5次錯誤,則鎖定賬戶
* 提示資訊: 賬號鎖定時提示語變更為“您的密碼輸入錯誤已達5次,請x分鐘後重試”(X=10-距離上次登入密碼錯誤時間間 * 隔的整數)
*/
定義一個check()方法,從Redis獲取 客戶密碼登入的錯誤次數,如果 Redis 次數 大於 定義的 MAX_COUNT,計算剩餘時間。
定義一個count()方法,
設定過期時間,重複設定會覆蓋掉原來的時間
定義一個clear()方法,
登入成功之後,錯誤次數歸零
其中,用到的 RedisKey,包括:
CUSTOMER_PASSWORD_ERROR_COUNT("customer:password:error:count:%s", REDIS_EXPIRE_TEN_MINUTE, "客戶密碼登入的錯誤次數"),
key有三個屬性:1.key,2.快取有效時間,單位秒,3.描述desc