拉取第三方库
首先可以使用第三方库来生成图形验证码,一个常用的库是base64Captcha,打开项目根目录终端把它拉取下来,命令是:
go get github.com/mojocn/base64Captcha
成功拉取如图所示:
使用示例
小伙伴们可以直接使用,自行调整验证码生成器的参数以达到你想要的验证码,然后直接生成即可,具体可以看以下代码:
driver := base64Captcha.NewDriverDigit(
100, // 宽度
200, // 高度
6, // 位数
1, // 噪音比例
10, // 干扰线数
)
captcha := base64Captcha.NewCaptcha(driver, base64Captcha.DefaultMemStore)
id, base64, answer, err := captcha.Generate()
if err != nil {
return nil, err
}
err = g.Redis().SetEX(ctx, consts.CODE_LOGIN.GetCacheName()+id, answer, 5*60)
if err != nil {
return nil, err
}
res = &v1.GetCaptchaImgRes{Response: &utility.Response{
Code: consts.SUCCESS.Code,
Message: consts.SUCCESS.Message,
Data: &output.Captcha{Uuid: id, Base64: base64},
}}
测试结果
{
"code": 200,
"message": "返回成功!",
"data": {
"uuid": "hJmVS1UqXtVdm6rFEsze",
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkBAMAAAAxqGI4AAAAIVBMVEUAAAASXCY8hlAeaDKP2aMRWyWK1J4hazU/iVM0fkgJUx0g57qlAAAAAXRSTlMAQObYZgAAA4VJREFUeJzsWUtu3ToM1cHLAzIkgfeALqNAN5BBNtBB99Nhl11I/Ii0fC05CYwGNUfxvTKPDj+H0k257ba/1F4uwHh6vQDkEia33fZZDVeAMF0AMmUyW4B3x4KIeLKEmd8DQ8TMk3Cimq8hOhn8hjADQVsCDVl9OoUDxTiOFguTtkr+mL1h7jHu8WAr1EJGLTkBZPKiRKghrO6o5h5tSzAQ2eGjTerni5UpKWu5F+9g+wgxp0QpWWxMlhIoi1p9QV//z7Coe0YuIcviOSXo3QS8vhSvfw9ejhwEcpGIv9RXO5PiTCx0voi5fn9WLIIuqK9NBnIRQEDezASe//B1cx+ogBvAWkvtMIGXU9mQS0yIWTYyF8eBCbyCwy7Ne2dS2wrU5HdRIaLL3sGBiTkHyNSghoqwoo4luUEtJTZOiYnz1D/a8lZhol2LTEAqdj7jQoN3QGMiCTF1XKQi9Rh3ZR2vgJkJpBNFflfjhc7Eg6Qd/4BJaHcspl7WP0M1PzKhzISduD9gbcxpRf36KZqfmER3rtDy3CtygYll7jm4URylsnEHAwkZmmFwaom0K0mqMbGjD7K6rRCpcQmIaVsqiqrFnNQg5GSBSGSCzbacik4wLr2FehBXQOKijdypbGkVIObdcrLCJPfSkMTERLYQxCWVxQGRfB7ZhqtEJl5Wrr9tPM6LayMKg0R4TL6Qdzl8/lfgBRAtH32iAcRd1FbtpyY3WmhFaMz9afuGx+85nOVMf2X0zzBkiFDxqeTaFaiOtKB1IINrqbgaZZKQj2+kj6zAtaiArBdHTCy8tDPkQjh82Frbo7fOAhPi4Z4Rwq8NyHYHqI7DZJxjlMCEeTw8WGI5M4HOReYhh0dI22OHOa/ItcKkJUDFmdD6jSngpGJkP5q2zXJJjYvCBJw4Du0b+iG7McH2RoSWl/dezyXoygR7xzgmEDxe/wwOFlim68L+1Q5Uj5Ka+29fBw9r1e37fBD/xoTE2Q6T+a8l9VDdbz0PREqYDAPCvjyMmCQ8XhIPFjcmu+5wNGxYmayanY1HR/QARlvvZAOwD2JkZ1QwgMut9hyA7U1O7dubl8pFAu41+RYg2ivc/y1wjWb7nYV9GJfzYFWnB5Qf31vO2pCTv9L56DTIrv27ZZLsI3/e7Exu+xh7ugLk9ZJ/mV2A8afYJf8yuKTJrmBy22233XbbbZ/YfgcAAP//JzdKNxfYW60AAAAASUVORK5CYII="
}
}