后端验证码的值如何和前端进行匹对?

前端用户注册时填验证码图片的值,然后和后端进行匹对。

但是因为用户没有注册,无法给他绑一个识别身份,所以我暂时的设计是这样的:

生成验证码图片时把验证码的值存进缓存(redis)里,缓存设置过期时间,然后前端提交验证验证码时从缓存里读取值,看是否有,如果存在匹对成功并且删除该条缓存。

这样的问题就是有可能出现输错也能匹对成功的情况,只是几率不是特别高。

请问有没有更好的思路?


慕村225694
浏览 1552回答 6
6回答

幕布斯7119047

如果是非前后端分离,那么可以将验证码存放在session中,进行校验。如果是前后端分离,那么,前端每次请求都是无状态的,那么,就需要在前端第一次请求的时候,分配给前端一个token,然后,前端每次请求时,都会带着这个token。可以将该token作为redis的键值,并将验证码放在对应的值位置。

BIG阳

一个session一个验证码,没注册也有session

德玛西亚99

只要控制好,应该不会出现输错也能匹对成功的情况。1,后台生成验证码。并且放到session里。2,前台获取验证码也是和刚才放到session里的这个同步。3,如果前台输错了,或者用户点击了切换验证码。那后台就更换验证码,同时session里的也更换其实,只要始终保证前台显示的验证码和session中的同步就不会出现问题。PS:每个request是多线程情况的话就应该不会出现输错也能匹对成功的情况。

开心每一天1111

session:在计算机中,尤其是在网络应用中,称为“会话控制”。不论是不是注册用户,只要访问,服务器就会生成一个唯一的会话 ID 。把验证码数据存在 session 里面即可。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java