後台使用了controller層選用了springmvc,驗證碼儲存在ehcache中並設定自動過期時間為1分鐘,key值使用sessionid,驗證碼生成使用了kaptcha外掛程式。
需求分析:
前台需要生成乙個4位數的驗證碼
提交之後由後台判斷驗證碼是否輸入正確
驗證碼有效期為1分鐘
思路分析:
在後台生成乙個4位數的隨機數字作為驗證碼值存入ehcache中,設定ehcache的過期時間為1分鐘,key值為sessionid。將驗證碼值用kaptcha外掛程式生成驗證碼,並返回到前台
使用者輸入驗證碼登入之後,在登入介面從ehcache根據sessionid獲取驗證碼,如果為null,則表示驗證碼已過期,如果不等於前台傳過來的驗證碼,則返回驗證碼錯誤,否則登入成功
前台**:
當點選img標籤時,重新獲取驗證碼,後面跟上隨機數防止頁面快取
後端獲取驗證碼介面
後端登入介面:
}kaptcha配置:
在resources目錄下建立kaptcha.xml檔案,用來配置驗證碼生成規則
<?xml version="1.0" encoding="utf-8"?>
12050
3457acdefhkmnprstuvwxyacdefghklmnpqrstuvwxy4no
105,179,90
1yellow
30楷體
black
8com.google.code.kaptcha.impl.shadowgimpy
com.google.code.kaptcha.impl.nonoise
spring boot驗證碼配置類
@configuration
@importresource(locations = "classpath:kaptcha.xml")
public class captchaconfig
在resources目錄配置ehcache.xml配置檔案
<?xml version="1.0" encoding="utf-8"?>
spring:
cache:
ehcache:
config: classpath:ehcache.xml
pom.xml依賴com.github.penggle
kaptcha
2.3.2
com.github.penggle
kaptcha
2.3.2
效果圖
登入驗證碼
生成驗證碼 指定驗證碼的長度 public static string createvalidatecode int length 生成隨機數字 for int i 0 i length i 抽取隨機數字 for int i 0 i length i 生成驗證碼 for int i 0 i leng...
登入驗證碼C
一.新建乙個checkcode.aspx using system using system.data using system.configuration using system.collections using system.web using system.web.security usi...
註冊登入驗證碼
1 判斷是不是手機號 public boolean ismobileno string mobiles matcher m p.matcher mobiles return m.matches 2 判斷密碼格式是否正確 public boolean iscorrectpassword string ...