使用cage工具包生成验证码

1. 导入依赖

<!--      验证码工具 -->
      <dependency>
        <groupId>com.github.cage</groupId>
        <artifactId>cage</artifactId>
        <version>1.0</version>
      </dependency>

2. 控制类

@RestController
@RequestMapping("captcha")
public class CaptchaController {
    private final Cage cage = new GCage();
    //captcha/getCaptcha
    @RequestMapping("getCaptcha")
    //因为使用的是springboot3,所以这里导入的HttpSession一定是jakarta.servlet.http.HttpSession
    public String getCaptcha(HttpSession session){
        //使用 getTokenGenerator().next() 方法生成一个新的验证码字符串
        String captcha = cage.getTokenGenerator().next();
        //将验证码保存到session中
        session.setAttribute("captcha",captcha);
        //打印验证码
        System.out.println("captcha:"+captcha);
        //生成验证码图片
        byte[] image = cage.draw(captcha);
        //将图片转换为Base64编码返回
        return Base64.getEncoder().encodeToString(image);
    }
}

3. 测试

      如果直接访问http://localhost:8080/captcha/getCaptcha,会返回一个验证码图片(如下图),但是图片无法正常显示,因为浏览器默认不识别Base64编码的图片,所以需要使用工具进行测试。
在这里插入图片描述

      使用Postman工具进行测试,将返回的Base64编码数据粘贴到图片转换工具中,即可得到验证码图片。
在这里插入图片描述

      注意:postman该功能只能在登录情况下使用,否则找不到该功能。
      将以下代码添加到postman的测试脚本中,即可实现Base64编码的图片显示。

//检查响应的Content-Type是否为JSON
if (pm.response.headers.get("Content-Type").includes("application/json")) {
    //如果是JSON,则解析响应
    const jsonData = pm.response.json();
    //你的JSON处理逻辑
} else {
    //如果不是JSON,则直接处理响应文本
    const base64String = pm.response.text();
    //你的Base64处理逻辑
    const template =`
        <img src="data:image/jpeg;base64,${base64String}"alt="Base64Image"/>`;
    pm.visualizer.set(template);
}

      测试结果如下:
在这里插入图片描述


over…
图片来自网络

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睆小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值