ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java 界最好用的开源行为验证码工具! [打印本页]

作者: 莫张周刘王    时间: 2024-12-5 08:45
标题: Java 界最好用的开源行为验证码工具!
各人好,我是 Java陈序员。
今天,给各人介绍一个开源的基于 Java 实现的行为验证码工具!
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子册本等。
项目介绍

TIANAI-CAPTCHA —— 天爱验证码,基于 Java 实现的开源行为验证码,涵盖滑块验证码、旋转验证码、滑动还原验证码、文字点选验证码等等。

项目截图

快速上手

1、引入依靠
  1. <dependency>
  2.     <groupId>cloud.tianai.captcha</groupId>
  3.     <artifactId>tianai-captcha</artifactId>
  4.     <version>1.5.1</version>
  5. </dependency>
复制代码
2、使用 ImageCaptchaApplication 生成和校验验证码
  1. public class TianAiCaptcha {
  2.     public static void main(String[] args) {
  3.         // 1、构建 ImageCaptchaApplication
  4.         ImageCaptchaApplication imageCaptchaApplication = TACBuilder.builder()
  5.                 // 1.1 添加默认模板 -- 可自定义添加模板
  6.                 .addDefaultTemplate()
  7.                 // 1.2 添加验证码资源信息 参数一:验证码类型(参考 CaptchaTypeConstant) 参数二:Resource("classpath/file/url", "图片路径")
  8.                 // 添加【滑块验证码】资源,背景图来自类路径下 背景图大小为:600 * 360
  9.                 .addResource(CaptchaTypeConstant.SLIDER, new Resource("classpath", "META-INF/cut-image/resource/1.jpg"))
  10.                 // 1.2.1 添加【旋转验证码】资源,背景图来自文件系统
  11.                 .addResource(CaptchaTypeConstant.ROTATE, new Resource("file", "E:\\CodeChen.png"))
  12.                 // 1.2.2 添加【滑动还原验证码】资源,背景图来自远程地址
  13.                 .addResource(CaptchaTypeConstant.CONCAT, new Resource("url", "https://chencoding.top:8090/_media/logo_2.png"))
  14.                 // 1.2.3 添加【文字点验证码】资源,背景图来自类路径下
  15.                 .addResource(CaptchaTypeConstant.WORD_IMAGE_CLICK, new Resource("classpath", "META-INF/cut-image/resource/1.jpg"))
  16.                 .build();
  17.         // 2、生成验证码
  18.         // 2.1 生成验证码的类型必须在 ImageCaptchaApplication 先添加对应的资源,否则会提示:【随机获取资源错误,store中资源为空, type:SLIDER,tag:null】
  19.         CaptchaResponse<ImageCaptchaVO> response = imageCaptchaApplication.generateCaptcha(CaptchaTypeConstant.CONCAT);
  20.         System.out.println(response);
  21.         // 2.2 验证码模板图片
  22.         System.out.println(response.getCaptcha().getTemplateImage());
  23.         // 2.3 验证码背景图片
  24.         System.out.println(response.getCaptcha().getBackgroundImage());
  25.         // 3、校验验证码:id 和 ImageCaptchaTrack 需要前端传来参数
  26.         String id = response.getId();
  27.         ImageCaptchaTrack imageCaptchaTrack = new ImageCaptchaTrack();
  28.         ApiResponse<?> valid = imageCaptchaApplication.matching(id, imageCaptchaTrack);
  29.         System.out.println(valid.isSuccess());
  30.     }
  31. }
复制代码
3、更多 API 可参考文末的在线文档。
SpringBoot 项目集成

1、引入依靠
  1. <dependency>
  2.   <groupId>cloud.tianai.captcha</groupId>
  3.   <artifactId>tianai-captcha-springboot-starter</artifactId>
  4.   <version>1.5.1</version>
  5. </dependency>
复制代码
2、配置验证码生成校验相干配置
  1. # 验证码配置,详细请看 cloud.tianai.captcha.autoconfiguration.ImageCaptchaProperties 类
  2. captcha:
  3.   # 如果项目中使用到了 Redis, 滑块验证码会自动把验证码数据存到 Redis 中,这里配置 Redis 的 key 的前缀 默认是 captcha:slider
  4.   prefix: captcha
  5.   # 验证码过期时间,默认:2 分钟,单位:毫秒
  6.   expire:
  7.     # 默认缓存时间 2分钟
  8.     default: 10000
  9.     # 针对【点选验证码】的配置,因为点选验证码验证比较慢,把过期时间调整大一些
  10.     WORD_IMAGE_CLICK: 20000
  11.   # 使用加载系统自带的资源,默认是 false(这里系统的默认资源包含滑动验证码模板/旋转验证码模板,如果想使用系统的模板,这里设置为true)
  12.   init-default-resource: true
  13.   # 缓存控制,默认为 false 不开启
  14.   local-cache-enabled: true
  15.   # 验证码会提前缓存一些生成好的验证数据,默认是 20
  16.   local-cache-size: 20
  17.   # 缓存拉取失败后等待时间 默认是 5 秒钟
  18.   local-cache-wait-time: 5000
  19.   # 缓存检查间隔 默认是 2 秒钟
  20.   local-cache-period: 2000
  21.   # 配置字体包,供文字点选验证码使用,可以配置多个,不配置使用默认的字体
  22.   font-path:
  23.     - classpath:font/SimHei.ttf
  24.   secondary:
  25.     # 二次验证,默认 false 不开启
  26.     enabled: false
  27.     # 二次验证过期时间,默认 2 分钟
  28.     expire: 120000
  29.     # 二次验证缓存 key 前缀,默认是 captcha:secondary
  30.     keyPrefix: "captcha:secondary"
复制代码
3、使用 ImageCaptchaApplication 生成和校验验证码
  1. @RestController
  2. @RequestMapping("captcha")
  3. public class CaptchaController {
  4.     @Autowired
  5.     private ImageCaptchaApplication imageCaptchaApplication;
  6.     @GetMapping("/generate")
  7.     public Result<CaptchaResponse<ImageCaptchaVO> > generate() {
  8.         CaptchaResponse<ImageCaptchaVO> response = imageCaptchaApplication.generateCaptcha(CaptchaTypeConstant.SLIDER);
  9.         return Result.success(response);
  10.     }
  11.     @PostMapping("/valid/${id}")
  12.     public Result<Boolean> valid(@PathVariable String id,
  13.                                  @RequestBody ImageCaptchaTrack imageCaptchaTrack) {
  14.         boolean valid = imageCaptchaApplication.matching(id, imageCaptchaTrack).isSuccess();
  15.         return Result.success(valid);
  16.     }
  17. }
复制代码
4、更多 API 可参考文末的在线文档。
TIANAI-CAPTCHA 除了提供后端集成的 SDK, 还提供了前端集成的 SDK, 这里不再赘述,相干使用以及更多的 API 配置可参考在线文档。
  1. 在线文档:http://doc.captcha.tianai.cloud/
复制代码
TIANAI-CAPTCHA 提供了多种行为验证码的快速集成,可以说是 Java 界中最好用的开源行为验证码工具。
如果开发中,需要涉及到验证码计划,可以试试使用~
  1. 项目地址:https://gitee.com/dromara/tianai-captcha
复制代码
最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star:
  1. https://github.com/chenyl8848/great-open-source-project
复制代码
或者访问网站,进行在线欣赏:
  1. https://chencoding.top:8090/#/
复制代码

各人的点赞、收藏和评论都是对作者的支持,如文章对你有资助还请点赞转发支持下,谢谢!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4