1. 程式人生 > >Spring Boot+Spring Security專案開發(三):實現簡訊驗證碼登入

Spring Boot+Spring Security專案開發(三):實現簡訊驗證碼登入

說在前面

博主最近會有很多專案跟大家一起分享,做完後會上傳github上的,希望讀友們能給博主提提意見哈哈

這個專案是第三方登入和安全方面的,關於後臺與app和網站的登入連線操作的實戰專案

各位如果可以就給我star哈哈謝謝啦

實現簡訊驗證碼登入

開發簡訊驗證碼介面

這裡寫圖片描述

校驗簡訊驗證碼並登入

這裡寫圖片描述

> 驗證碼處理流程:

這裡寫圖片描述
先進入ValidateCodeController並且接收{type}–>進入ValidateCodeProcessorHolder(驗證碼處理器的持有者,要獲取先來這裡通過驗證和查詢)–>找到Spring的元件中對應的處理器,返回–>進入AbstractValidateCodeProcessor(顧名思義,抽象的驗證碼處理器類,這裡面主要是各種驗證碼處理器類的共同方法)–>getValidateCodeType根據請求的url獲取校驗碼的型別–>ValidateCodeType這是個列舉類,找到對應的型別–>獲取validateCodeGenerator(在map中找)–>進入生成校驗碼的邏輯中

> 驗證碼過濾器的執行機制

在屬性配置完之後–>向map中存放所有需要校驗驗證碼的url(呼叫securityProperties中getCode中讀取不同型別的驗證碼型別)–>往下執行–>等使用者輸入後再進入過濾器進行doFilterInternal內部校驗

重構程式碼
> 重構的目的就是讓程式碼以後都可以直接重用

這裡寫圖片描述
1.將配置統一起來管理,在SecurityProperties類中讀取BrowserProperties和ValidateCodeProperties,以後與安全認證相關的配置類都可以在SecurityProperties中配上
2.定義一個SecurityConstants安全認證模組的常量介面類,裡面包含所有要用到的常量,方便以後維護和擴充套件
3.建立ValidateCodeProcessor,定義一些通用的方法和屬性,讓AbstractValidateCodeProcessor去實現介面自己擴充套件通用的方法,然後再讓具體實現類去繼承擴充套件自己的方法