- Hutool
- 代碼改造
Hutool
有參考文檔;很多工具類;把一些功能都封裝好;都不用你自己去寫;直接調用它的工具類
它這里會詳細告訴你引入方式Hutool
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.19</version></dependency>
實現1:我們不保存在本地;輸出字節流給前端;然后在前端顯示出來
實現2:保存在static的img里;然后url寫在前端的這個部分的圖片里;這個圖形驗證碼就有了(但是這里會有個問題;如果是部署云服務器;那我們jar包;沒法把文件保存在這里;我們就寫系統的目錄用來保存)
代碼改造
我們可以使用另一種方式;把驗證碼存在Session;然后我們就可以通過用戶Session取這個驗證碼
注意:攔截器要注意放行
前端:
后端:
封裝的類;返回一個圖片文件名;還有驗證碼的內容;
配置圖片儲存路徑:(之所以不寫在static;是因為如果我們要打包成jar發布到云服務器;那就沒法在jar包里寫入文件)
注意:一定不能遺漏在application.properties引用一下spring.profiles.active=dev
攔截器開放:
后端的接口;以"/image/“開頭的路徑,攔截器將不會對其進行處理
.excludePathPatterns(”/user/getcode")
.excludePathPatterns(“/image/**”);
進行一個映射配置;當訪問"/image/**“;就會映射到imagePath;就是我們配置到那個路徑。addResourceHandlers方法是在WebMvcConfigurerAdapter或WebMvcConfigurer口中的一個方法,用于配置靜態資源的處理。file:“前綴表示這是一個本地文件系統路徑。+ imagePath表示要處理的靜態資源存儲路徑。
要使用imagepath注入一下
@Value(”${imgpath}”)
private String imagePath;
驗證碼判斷:
首先我們在前端獲取驗證碼;然后將內容發給后端;后端我們從Session取到驗證碼對比一些即可知道真偽(能提高點安全程度;暴力破解的成本就提高了)
這個判斷邏輯放最前面去也是沒有問題的;因為我們在儲存這個驗證碼的時候;如果登錄請求這里還沒創建Session;我們就會在那里創建Session;如果有就選中
效果: