分享一個圖片驗證碼功能的實現
專案地址
https://github.com/smallsnail-wh/wh-validate
實現原理
/validate/imag
請求獲取驗證碼圖片,並將驗證碼資訊存入session
。- 使用
filter
來驗證請求中驗證碼是否正確。 - 提供
ImageCodePropertiesConfigurerAdapter
和ValidateCodeGenerator
來自定義驗證碼圖片。
使用方法
- 將專案中
com.wh.validate.demo
包中的所有程式碼copy到你的專案,完成相關依賴的匯入(可參考此專案本身)。 - 專案提供預設網址:
/validate/image
,來獲取驗證碼圖片。 - 實現
ImageCodePropertiesConfigurerAdapter
介面並註冊為bean,配置需要驗證的url,可配置多個。
注意 驗證請求中必須以 imageCode=”XXXX”
(XXXX為驗證字串),這樣的引數形式傳入。(若驗證請求為post
形式,資料格式必須為application/x-www-form-urlencoded
)
@Component
public class ImageCodePropertiesConfigurerAdapterTemp implements ImageCodePropertiesConfigurerAdapter {
@Override
public void imageCodePropertiesConfigure(ImageCodeDefaultProperties imageCodeDefaultProperties) {
imageCodeDefaultProperties.setUrl("/login","/logintest");
}
}
- 如果驗證錯誤會返回json
{“error”:403,”message”:”驗證碼不匹配”}
自定義配置
分兩種情況:1.完全使用你自己的圖片驗證碼樣式。2,使用此專案圖片驗證樣式,但是改變寬高,以及驗證碼字元數量和驗證碼過期時間。
如果完全使用你自己的圖片驗證碼樣式,你需要實現ValidateCodeGenerator
並註冊為bean
。在createImageCode
中返回ImageCode
@Component
public class ImageCodeGenertorTemp implements ValidateCodeGenerator {
@Override
public ImageCode createImageCode(HttpServletRequest req) throws IOException {
//你生產的驗證碼圖片
BufferedImage image;
//驗證碼圖片對應的字串
String code;
//過期時間(單位秒)
int expireIn;
ImageCode imageCode = new ImageCode(image,code,expireIn);
return imageCode;
}
}
如果使用此專案圖片驗證樣式,但是改變寬高,以及驗證碼字元數量和驗證碼過期時間,你可以直接在實現ImageCodePropertiesConfigurerAdapter
介面的那個類中,直接配置。
@Component
public class ImageCodePropertiesConfigurerAdapterTemp implements ImageCodePropertiesConfigurerAdapter {
@Override
public void imageCodePropertiesConfigure(ImageCodeDefaultProperties imageCodeDefaultProperties) {
imageCodeDefaultProperties.setSize(5).setHeight(50).setWidth(200).setExpireIn(60).setUrl("/login","/logintest");
}
}
相關文章
- Springboot +redis+⾕歌開源Kaptcha實現圖片驗證碼功能Spring BootRedisAPT
- node實現登入圖片驗證碼
- 使用.Net Core實現的一個圖形驗證碼
- 短視訊商城系統,通過Java實現圖片驗證碼,點選重新整理圖片驗證碼Java
- 圖片驗證碼介面
- 圖片驗證碼 CaptchaAPT
- TP6實現前後端分離的圖片驗證碼,驗證碼以介面形式返回後端
- 為網站實現一個驗證碼網站
- Java實現郵箱驗證碼功能Java
- golang 生成圖片驗證碼Golang
- SpringBoot + Spring Security 學習筆記(三)實現圖片驗證碼認證Spring Boot筆記
- java圖形驗證碼實現Java
- Java隨機生成圖片與HTML表單中的驗證碼實現Java隨機HTML
- SpringCloud微服務實戰——搭建企業級開發框架(二十四):整合行為驗證碼和圖片驗證碼實現登入功能SpringGCCloud微服務框架
- SpringSceurity(4)---簡訊驗證碼功能實現Spring
- 圖形驗證碼設計實現
- Canvas入門實戰之用javascript物件導向實現一個圖形驗證碼CanvasJavaScript物件
- 使用taro+canvas實現微信小程式的圖片分享功能Canvas微信小程式
- PHP實現隨機數字、字母的驗證碼功能PHP隨機
- 用canvas實現一個自動識別兩張圖片差異(圖片找不同)的功能Canvas
- 【日常筆記】生成驗證碼圖片筆記
- app直播原始碼,js實現上傳圖片型別+大小+尺寸驗證APP原始碼JS型別
- 短視訊直播原始碼,拖動滑塊實現圖片驗證效果原始碼
- Vue.js實現圖形驗證碼Vue.js
- 一步一步生成滑動驗證碼圖片
- 如何實現直播間原始碼重要的簡訊驗證碼功能原始碼
- 圖形驗證碼圖片樣式設定
- 分享一款漂亮的 C# .Net 圖形驗證碼C#
- 配合滑塊圖片驗證的JS來了,一行js引入即可實現JS
- 臭名昭著的手機驗證碼功能是如何實現的
- vue實現聊天+圖片表情功能Vue
- easy-captcha實現驗證碼驗證APT
- Django實現驗證碼Django
- 滑塊驗證圖片
- 旋轉圖片驗證
- 點選驗證圖片
- app直播原始碼,驗證時實現獲取驗證碼並顯示倒數計時的功能APP原始碼
- 織夢點選圖片實現下一頁功能