最近的项目接触到图片验证码,虽然觉得验证码很影响用户体验,但不得,不说这是一个频率控制的好方法。
1.需求
- 登陆的时候,需要输入正确图片验证码,才能登陆
2.问题
- 怎么获取图片,每次刷新就会出现新的图片
- 怎么验证用户输入的图片验证码
3.设计
- 刷新获取图片,明显是再次请求图片,可以采用http请求,加上时间戳防止缓存
- 验证用户输入的图片验证码:每张图片和图片中的验证码有一种映射关系,一般用UUID来作为中间人,对应图片和图片中的验证码。
- 图片是有一个库,但是为了防止攻击,这个库需要隔断时间更新
4.实现
- 刷新请求图片的时候,发起http请求,获取图片url和uuid值,通过url来显示图片
- 验证图片的时候:发送http请求,将uuid和图片验证码作为参数传给服务器,服务器调用图片验证服务(uuid+图片验证码两个参数)来判断是否正确