| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package system
- import (
- "github.com/gin-gonic/gin"
- "github.com/mojocn/base64Captcha"
- "go.uber.org/zap"
- "log-server/global"
- "log-server/model/common/response"
- systemRes "log-server/model/system/response"
- )
- // 当开启多服务器部署时,替换下面的配置,使用redis共享存储验证码
- // var store = captcha.NewDefaultRedisStore()
- var store = base64Captcha.DefaultMemStore
- type BaseApi struct{}
- // Captcha
- // @Tags Base
- // @Summary 生成验证码
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Success 200 {object} response.Response{data=systemRes.SysCaptchaResponse,msg=string} "生成验证码,返回包括随机数id,base64,验证码长度"
- // @Router /base/captcha [post]
- func (b *BaseApi) Captcha(c *gin.Context) {
- // 字符,公式,验证码配置
- // 生成默认数字的driver
- driver := base64Captcha.NewDriverDigit(global.GVA_CONFIG.Captcha.ImgHeight, global.GVA_CONFIG.Captcha.ImgWidth, global.GVA_CONFIG.Captcha.KeyLong, 0.7, 80)
- // cp := base64Captcha.NewCaptcha(driver, store.UseWithCtx(c)) // v8下使用redis
- cp := base64Captcha.NewCaptcha(driver, store)
- if id, b64s, err := cp.Generate(); err != nil {
- global.GVA_LOG.Error("验证码获取失败!", zap.Error(err))
- response.FailWithMessage("验证码获取失败", c)
- } else {
- response.OkWithDetailed(systemRes.SysCaptchaResponse{
- CaptchaId: id,
- PicPath: b64s,
- CaptchaLength: global.GVA_CONFIG.Captcha.KeyLong,
- }, "验证码获取成功", c)
- }
- }
|