您好,登錄后才能下訂單哦!
這篇文章主要介紹了SpringBoot密碼找回功能怎么弄,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
最近在做自己的項目,其中有一個大家都知道的功能就是找回密碼。這里分享一下我的做法,因為這中間實在有太多坑了。所以記錄一下。
使用技術:SpringBoot1.5.6、JPA、SpringSecurity4、MySQL、BootStrap等等等。。。
密碼找回流程圖:
首先,先來給大家介紹一下密碼找回的基本原理:
接著,按照流程圖我們來實現一下首先第一步是點擊跳轉到找回密碼界面:我用的是這種方式大家隨意
找回密碼界面為:
第二步:判斷輸入的賬戶是否有效
下面是如果存在的話就生成URL鏈接:
backPassword:
第三步:判斷重置表中是否有該賬戶,重置表是一張保存URL的表(過期時間、sid、賬戶信息等)
這樣做的目的是:如果存在該條數據而不去刪除的話,下次找回密碼的時候就會生成2條賬戶一樣,但是sid不一樣的數據,這樣的壞處是:發郵件的時候不知道該返回哪個URL,因為有2條URL
第四步:郵件發送
我們先來看下效果:
接下來就是重要部分:如何處理驗證鏈接,首先我們可以看到/user/reset_password這個是一個請求后面是它的參數,所以切記!
我們要寫一個請求,路由就是/user/reset_password,與此同時需要在SpringSecurity中對該請求放行。驗證的過程是這樣的:首先把從請求傳過來的sid和userName(也就是郵箱)和數據庫中的sid和account比對,同時還要對比時間是否是在有效期30分鐘內,如果這些都滿足的話就返回true,否則為false。需要注意的是:這里有一個替換是空格替換為+號,是因為HTML傳給后臺的時候+號被自動轉為了空格,如果不替換為+號的話就會一直提示驗證失敗!!!一旦返回true的話就代表驗證URL通過,就跳轉到重置密碼界面:
注意:我這里沒有對驗證進行優化,不應該有這么多的if else嵌套
對請求路由進行放行:如果不放行的話點擊鏈接就會跳轉至登錄界面
跳轉到重置頁面,如果我們這時2次輸入的密碼不一致就會有如下的提示,我這個是使用JS做的校驗:
當然為了嚴謹我們在后臺也進行2次密碼校驗,如果輸入的是一致的話才去更新信息,不一致的話就返回錯誤
這里倒是沒什么,就是注意下在密碼保存到數據庫之前,使用MD5+鹽加密一下,之后保存就可以,我們來看下2次密碼輸入正確的效果:頁面提示修改成功后臺無報錯,這時候使用新密碼就可以進行登錄
感謝你能夠認真閱讀完這篇文章,希望小編分享SpringBoot密碼找回功能怎么弄內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。