1. 程式人生 > >Redis 以及 Session 實現使用者登入的整體流程

Redis 以及 Session 實現使用者登入的整體流程

說在前面

簡單總結一下專案中登入的整個流程。

其中包含

  1. 使用者登入失敗次數
  2. 使用者資訊儲存
  3. 請求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

Jedis.ttl()