golang生成滑块验证码

最近公司要求做一个滑块验证码,但是因为项目是孵化阶段,暂时不考虑使用第三方验证,于是只能自己写了,于是各种百度,几乎百度不到。

于是我参考了一下网易易盾的滑块验证码,我发现他的北京图片都是480*240的 于是我找了一堆480*240的背景图

准备了10张背景图

我的思路是这样的,找了一张100*100半透明png图

然后随机取一个坐标把这个半透明图盖在背景图上合成一张验证图

在把透明图盖住的地方截取出来 效果如下

剩下的就移交给前端大佬了

上代码 这里我们需要用到一个库 "http://github.com/disintegration/imaging" 使用 go mod的形式安装

首先创建一个随机数函数

创建验证码

可以看到我创建了以后我会返回一个图片的id 图片的截图的x坐标和y坐标 把y坐标传给前端,吧图片id记录到cookie,后端把x坐标存到redis里面 前端根据用户传滑动的操作吧x坐标传给后端 后端取出cookie里面的图片id拿到redis里面对比 这个坐标在误差值范围内则验证通过