亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Boot 驗證碼框架 CAPTCHA詳解

瀏覽:3日期:2023-07-19 11:00:52
CAPTCHA

查看 Github 倉庫 | 查看 Gitee 倉庫

簡介

人機識別與驗證碼是后端開發(fā)中保護接口最常見的方式之一,而此類代碼往往會與業(yè)務(wù)代碼耦合帶來項目可維護性變差。

CAPTCHA 是一個基于 Spring Boot 的驗證碼框架,它通過 AOP 的方式完成包含驗證碼生成、發(fā)送、存儲等驗證碼相關(guān)業(yè)務(wù),以避免與業(yè)務(wù)代碼耦合。開發(fā)者可以輕松地通過不同組件的組合來完成驗證業(yè)務(wù),同時可以進行自定義實現(xiàn)以應(yīng)對自身的業(yè)務(wù)需求(例如郵箱驗證碼、短信驗證碼)。

代碼示例

導入 Maven 依賴

<dependency> <groupId>cn.dustlight.captcha</groupId> <artifactId>captcha-core</artifactId> <version>0.0.6</version></dependency>

添加注解啟用 CAPTCHA

@SpringBootApplication@EnableCaptcha // 啟用 CAPTCHApublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }}

使用注解生產(chǎn)驗證碼

@RequestMapping('/captcha') @SendCode // 生成隨機字符圖像驗證碼并發(fā)送 public void captcha(@CodeValue String code) { // 在此處進行自定義的業(yè)務(wù),驗證碼的生成、發(fā)送與儲存已由注解 ’@SendCode’ 完成。 log.info(code); }

使用注解消費驗證碼(保護接口)

@RequestMapping('/') @VerifyCode public String index(@CodeValue String code) { // 在此處進行自定義的業(yè)務(wù),驗證碼的驗證以及銷毀已由注解 ’@VerifyCode’ 完成。 return String.format('Hello World! (%s)', code); }實現(xiàn)原理

CAPTCHA 基于面向切面編程(AOP)思想,將驗證碼業(yè)務(wù)劃分為兩個切面:

@SendCode

生成驗證碼 儲存驗證碼 發(fā)送驗證碼

@VerifyCode

讀取驗證碼 進行驗證

同時將驗證碼業(yè)務(wù)抽象為下面幾個接口:

Code—— 驗證碼 CodeGenerator—— 生成器 CodeSender—— 發(fā)送器 CodeStore—— 儲存器 CodeVerifier—— 驗證器

例子

隨機字符圖像驗證碼的 AOP 實現(xiàn)

業(yè)務(wù)分析

客戶端訪問驗證碼接口獲取到圖像,同時后端服務(wù)將生成的驗證碼儲存在 Session 或者 Redis。 客戶端訪問接口(登錄、注冊等),傳入?yún)?shù)以及驗證碼,后端服務(wù)取出驗證碼進行校驗。

模塊劃分

業(yè)務(wù)邏輯

@SendCode

通過 CodeGenerator生成 Code。 通過 CodeStore儲存 Code。 通過 CodeSender輸出 Code。 執(zhí)行業(yè)務(wù)代碼。

@VerifyCode

從請求參數(shù)獲取待驗證的驗證碼。 通過 CodeStore取出 Code。 通過 CodeVerify進行驗證。 驗證完成則執(zhí)行業(yè)務(wù)代碼,否則拋出異常。拓展與組合

除了圖像驗證碼(人機識別)以外,常見的驗證碼業(yè)務(wù)或者人機識別業(yè)務(wù)例如:短信驗證碼、郵箱驗證碼、谷歌 reCAPTCHA 人機識別等都可以通過實現(xiàn)上述接口來完成業(yè)務(wù)。

例如,想要使用 Redis 儲存驗證碼只需要通過 RedisTemplate實現(xiàn) CodeStore即可,再通過模塊的組合使用可以輕易地完成自定義的驗證碼業(yè)務(wù),同時又不影響業(yè)務(wù)代碼。

到此這篇關(guān)于Spring Boot 驗證碼框架 - CAPTCHA的文章就介紹到這了,更多相關(guān)Spring Boot 驗證碼框架內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产成人免费a在线资源 | 欧美日韩专区国产精品 | 日韩欧国产精品一区综合无码 | 中国老太卖淫播放毛片 | 国产精品久久做爰 | 精品一区二区三区四区在线 | 中文字幕日韩一区二区不卡 | 亚洲最大的视频网站 | 国产成人高清在线观看播放 | 日韩精品午夜视频一区二区三区 | 一区二区三区在线视频观看 | 日本一本久道 | 波野多衣在线观 | 国产在线一区二区三区四区 | 亚洲精品第一区二区三区 | 毛片免费观看网址 | 欧美日韩亚洲第一页 | 99久久精品国产国产毛片 | 国产在线一区二区三区 | 欧美xxxwww | 欧美极品在线视频 | 草草视频在线播放 | 草草久| 特级av毛片免费观看 | 亚洲欧美日韩国产综合高清 | 黄页美女 | 日本亚洲成高清一区二区三区 | 国产成人yy精品1024在线 | 国产一区二区三区四区在线 | 中文精品久久久久国产不卡 | 国产美女在线一区二区三区 | 日本高清免费视频色www | 日韩欧美一区二区三区不卡视频 | 67194欧美成l人在线观看免费 | 成人在线综合 | 欧日韩美香蕉在线观看 | 色偷偷亚洲男人天堂 | 婷婷在线成人免费观看搜索 | 在线观看国产亚洲 | 欧美日韩视频一区二区在线观看 | 99久久精品久久久 |