登入驗證碼開發記錄

2022-03-30 10:42:43 字數 1997 閱讀 1631

後台使用了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 ...