1.下载依赖

图形验证码生成 依赖 “github.com/mojocn/base64Captcha”

2.生成验证码

  1. // 图形验证码
  2. func CaptchaImage(c *gin.Context) {
  3. //config struct for digits
  4. //数字验证码配置
  5. //var configD = base64Captcha.ConfigDigit{
  6. // Height: 80,
  7. // Width: 240,
  8. // MaxSkew: 0.7,
  9. // DotCount: 80,
  10. // CaptchaLen: 5,
  11. //}
  12. //config struct for audio
  13. //声音验证码配置
  14. //var configA = base64Captcha.ConfigAudio{
  15. // CaptchaLen: 6,
  16. // Language: "zh",
  17. //}
  18. //config struct for Character
  19. //字符,公式,验证码配置
  20. var configC = base64Captcha.ConfigCharacter{
  21. Height: 60,
  22. Width: 240,
  23. //const CaptchaModeNumber:数字,CaptchaModeAlphabet:字母,CaptchaModeArithmetic:算术,CaptchaModeNumberAlphabet:数字字母混合.
  24. Mode: base64Captcha.CaptchaModeNumber,
  25. ComplexOfNoiseText: base64Captcha.CaptchaComplexLower,
  26. ComplexOfNoiseDot: base64Captcha.CaptchaComplexLower,
  27. IsShowHollowLine: false,
  28. IsShowNoiseDot: false,
  29. IsShowNoiseText: false,
  30. IsShowSlimeLine: false,
  31. IsShowSineLine: false,
  32. CaptchaLen: 6,
  33. }
  34. //创建声音验证码
  35. //GenerateCaptcha 第一个参数为空字符串,包会自动在服务器一个随机种子给你产生随机uiid.
  36. //idKeyA, capA := base64Captcha.GenerateCaptcha("", configA)
  37. //以base64编码
  38. //base64stringA := base64Captcha.CaptchaWriteToBase64Encoding(capA)
  39. //创建字符公式验证码.
  40. //GenerateCaptcha 第一个参数为空字符串,包会自动在服务器一个随机种子给你产生随机uiid.
  41. idKeyC, capC := base64Captcha.GenerateCaptcha("", configC)
  42. //以base64编码
  43. base64stringC := base64Captcha.CaptchaWriteToBase64Encoding(capC)
  44. //创建数字验证码.
  45. //GenerateCaptcha 第一个参数为空字符串,包会自动在服务器一个随机种子给你产生随机uiid.
  46. //idKeyD, capD := base64Captcha.GenerateCaptcha("", configD)
  47. //以base64编码
  48. //base64stringD := base64Captcha.CaptchaWriteToBase64Encoding(capD)
  49. c.JSON(http.StatusOK, model.CaptchaRes{
  50. Code: 0,
  51. IdKey: idKeyC, //验证请求时须传的参
  52. Data: base64stringC,
  53. Msg: "操作成功",
  54. })
  55. }

3.校验验证码

  1.  //比对验证码
  2. verifyResult := base64Captcha.VerifyCaptcha(req.IdKey, req.ValidateCode)
  3. if !verifyResult {
  4. response.ErrorResp(c).SetMsg("验证码不正确").WriteJsonExit()
  5. return
  6. }