前端用户注册时填验证码图片的值,然后和后端进行匹对。但是因为用户没有注册,无法给他绑一个识别身份,所以我暂时的设计是这样的:生成验证码图片时把验证码的值存进缓存(redis)里,缓存设置过期时间,然后前端提交验证验证码时从缓存里读取值,看是否有,如果存在匹对成功并且删除该条缓存。这样的问题就是有可能出现输错也能匹对成功的情况,只是几率不是特别高。请问有没有更好的思路?
6 回答

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

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

开心每一天1111
TA贡献1836条经验 获得超13个赞
添加回答
举报
0/150
提交
取消