700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 图片验证码(遇到集群session验证失败的解决方法)

图片验证码(遇到集群session验证失败的解决方法)

时间:2021-10-03 10:42:29

相关推荐

图片验证码(遇到集群session验证失败的解决方法)

前两天新项目,做了一个关于图片验证码的功能,其实思路什么很简单,就是直接调用接口,给前端输出图片流。在输出流的时候,把验证码给存到session中去,然后验证的时候,在从session中取值。从而进行验证验证码是否正确。如果是单一的服务器的话是没问题的,但是遇到了集群的话,可能就会出错了。因为一个域名是随机面对的一个服务器的ip,然后你进行图片验证的时候,每次ajax进行的请求,服务器会认为是新的一次请求(前后端分离也是这个问题),然后新的一次请求,取到的验证码肯定就不对了,下面说一下解决方法。

解决方法:

将验证码存入到redis中去,然后key值就是uuid,value值就是code值,然后每次前台调用图片验证码接口的时候,会返回一个uuid,和一个将图片流base64编码的字符串。然后每次前台验证的时候,需要给我传这个uuid,然后我在进行通过取uuid的value值进行验证。其实这个解决方法的关键就是将原先的图片流换成了base64编码。

然后下面则写一下两种图片验证的方式代码。

一、传统的方法,直接给前台输出图片流,然后将code值存入session中(单一服务器可行,集群情况下会出错)

二、将code值直接存到一个以uuid为key的redis中去,同时给前端返回的验证码图片是一个base64编码的字符串。

前端的图片显示需要这种格式:<img src = "data:image/jpeg;base64,这里加上你的base64码" alt="">

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。