验证流程
流程详解
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. 代码详细实现
4. 测试使用
检出代码,执行sql
修改配置文件的数据库链接
注意:此处将生成的图片放到的fastdfs文件服务器上,如果需要搭建fastdfs的请移步此处fastdfs的安装与实践
启动项目,获取验证码
点击验证码(前台自行实现,本项目没有提供前台点击的实现),并发送给验证码中心
前台 通过js获取鼠标点击的图片像素的位置传给后台
clickCode就是需要验证的内容(比如:坐标信息)
// 数据格式
{
clickCode: {"1":[116,72],"2":[29,105],"3":[258,75]}
clientId: teleinfo
token: 98848bf8639c4b97be8ab8d4f6d55dfe
width: 310
}
模拟登陆请求