1. 程式人生 > >java web 開發 如何實現 輸入密碼三次錯誤 後 鎖定賬戶功能。

java web 開發 如何實現 輸入密碼三次錯誤 後 鎖定賬戶功能。

要求 : 
1、 不能使用cookie 和 session ,因為 時間和條件受限

2、不可以存、讀取資料庫 不給系統壓力

鎖定是很簡單的,只要在使用者表中加上失敗次數,鎖定標誌,鎖定時間(可選)。
每次登入時,已經鎖定直接禁止登入。
沒有鎖定就判定,如果失敗就把失敗次數+1,如果成功就重新置0。
失敗次數+1後判斷失敗次數是否是3,是3的話將鎖定標誌置為真,並設上時間。

其實比較煩的是解鎖。如果手工解鎖還好,在管理員介面修改鎖定標誌即可。如果要自動解鎖。需要定時執行程式碼,判斷是否解鎖,這時就需要鎖定時間這個欄位了。

由於是選擇高質量答案,現在才看到題目中有不用資料庫和cookie的要求。那麼辦法就只有使用memcache或靜態Map。細節和上面的說法類似,就不細說了。唯一問題memcache不能保證永續性,所以有一定的可能會提前解鎖(機率不大)。而靜態map可能會被一些優化工具判斷為記憶體洩漏。