第三方验证码中心示例(点击验证码实现)

验证流程

基础流程

流程详解
1. 作为第三方的验证码中心,需要为每一位客户提供用户id和秘钥
2. 用户拿着自己的id获取验证码图片,验证码中心会返回一个唯一的token用于标识验证码
3. 用户将验证码填写完毕后传给验证码中心,验证码中心会返回加密信息
4. 登录请求的时候见加密信息发送到验证码中心验证

验证码中心设计

1. 数据库表设计

这里写图片描述

2. 定义 验证码实体类

@Getter
@Setter
public class ValidateCode implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 1588203828504660915L;

    // 用户id
    private String clientId;

    // 验证码的唯一标识
    private String token;

    // 验证码内容
    private String code;

    // 过期时间
    private Long expireTime;

    // 图片内容
    private BufferedImage image;

}

2. UML设计

这里写图片描述

3. 代码详细实现

github地址(点击链接)

4. 测试使用


检出代码,执行sql
这里写图片描述


修改配置文件的数据库链接
这里写图片描述


注意:此处将生成的图片放到的fastdfs文件服务器上,如果需要搭建fastdfs的请移步此处fastdfs的安装与实践


启动项目,获取验证码
这里写图片描述


点击验证码(前台自行实现,本项目没有提供前台点击的实现),并发送给验证码中心

前台 通过js获取鼠标点击的图片像素的位置传给后台
clickCode就是需要验证的内容(比如:坐标信息)

// 数据格式
{
    clickCode: {"1":[116,72],"2":[29,105],"3":[258,75]}
    clientId: teleinfo
    token: 98848bf8639c4b97be8ab8d4f6d55dfe
    width: 310
}

这里写图片描述


模拟登陆请求
这里写图片描述

猜你喜欢

转载自blog.csdn.net/sinat_31908303/article/details/81478540