项目简介
anji-plus/captcha是一个开源的行为验证码组件,提供滑动拼图和文字点选两种验证方式,支持多种前端框架和后端语言。该项目采用嵌入式集成方式,接入方便,安全高效,能够有效防止恶意攻击和自动化脚本。
核心功能特性
- 多样化验证方式:支持滑动拼图、文字点选、旋转拼图三种验证模式
- 多平台支持:前端支持Android、iOS、Flutter、Uni-App、ReactNative、Vue、Angular、Html、Php等
- 高度可定制:验证码样式、验证逻辑、存储方式均可灵活配置
- 安全可靠:采用前后端交互验证机制,有效防止恶意攻击
项目架构解析
核心模块结构
项目采用标准Maven结构,主要包含以下关键部分:
- core/captcha:Java核心源码,包含完整的验证码生成和验证逻辑
- core/captcha-spring-boot-starter:SpringBoot快速启动器
- service:后端服务示例,包含Go、PHP、SpringBoot、SpringMVC等多种实现
- view:前端客户端示例,覆盖主流移动端和Web端框架
验证码类型说明
项目提供三种验证码类型:
- 滑动拼图(blockPuzzle):用户需要将滑块拖动到正确位置
- 文字点选(clickWord):用户需要点击图片中指定的文字
- 旋转拼图(rotatePuzzle):用户需要旋转图片到正确角度
快速配置步骤
1. 获取项目源码
git clone https://gitcode.com/gh_mirrors/captc/captcha
2. 配置基础参数
在项目的配置文件中设置以下关键参数:
# 验证码类型配置
captcha.type=default
# 缓存类型配置
captcha.cacheType=local
# 滑动误差偏移量
captcha.slip.offset=5
# 点选文字个数
captcha.word.count=4
# 水印文字
captcha.water.mark=我的水印
3. 后端集成配置
对于SpringBoot项目,可以通过starter快速集成:
<dependency>
<groupId>com.anji-plus</groupId>
<artifactId>captcha-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
4. 前端集成示例
以Vue项目为例,集成验证码组件:
// 在需要验证码的页面引入组件
import Captcha from 'aj-captcha-vue'
export default {
components: {
Captcha
},
methods: {
handleCaptchaSuccess(token) {
// 验证成功后的处理逻辑
},
handleCaptchaError(error) {
// 验证失败后的处理逻辑
}
}
}
核心配置文件详解
验证码类型配置
# 验证码类型:blockPuzzle(滑动拼图)、clickWord(文字点选)、rotatePuzzle(旋转拼图)、default(默认)
captcha.type=default
# 缓存类型:local(本地)、redis(Redis缓存)
captcha.cacheType=local
# 滑动误差偏移量,单位为像素
captcha.slip.offset=5
# 点选文字个数
captcha.word.count=4
# AES加密开关
captcha.aes.status=true
资源路径配置
# 滑块底图路径
captcha.captchaOriginalPath.jigsaw=images/jigsaw/original/
# 点选底图路径
captcha.captchaOriginalPath.pic-click=images/pic-click/
# 旋转底图路径
captcha.captchaOriginalPath.rotate=images/rotate/
安全配置参数
# 接口限流开关
captcha.req.frequency.limit.enable=1
# get接口一分钟请求次数限制
captcha.req.get.minute.limit=100
# 验证失败后锁定时间
captcha.req.get.lock.seconds=300
部署与测试
后端服务启动
- 导入项目到IDE(Eclipse或Intellij)
- 定位到service/springboot目录下的启动类
- 运行SpringBoot应用
前端服务启动
cd view/vue
npm install
npm run dev
启动成功后,浏览器访问 http://localhost:8081 即可体验验证码功能。
功能验证要点
- 滑动验证:测试不同偏移量下的验证精度
- 点选验证:验证文字识别和点击准确性
- 性能测试:确保在高并发场景下的稳定性
- 安全测试:验证防护机制的有效性
常见问题解决
验证码显示异常
检查资源文件路径配置是否正确,确保images目录下的图片资源存在。
验证失败频繁
调整滑动误差偏移量参数,适当增大容错范围。
性能问题
对于高并发场景,建议使用Redis作为缓存存储方式,提升系统性能。
最佳实践建议
- 安全性优先:始终启用AES加密和接口限流功能
- 用户体验:合理设置验证难度,平衡安全性和易用性
- 监控告警:建立验证码使用情况的监控机制
- 定期更新:关注项目更新,及时升级到最新版本
这款验证码组件为你的应用安全提供了坚实的保障,通过简单的配置即可快速集成到现有项目中,有效防止恶意访问和自动化攻击。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





