go 超好用图形验证码

发布时间 2023-11-28 21:57:30作者: 现世中的素人

 

https://zh.mojotv.cn/go/refactor-base64-captcha

点击下图链接 跳转到github中:

  

使用单机部署:

生成图片验证码:

package Controllers

// 图形验证码

import (
    "github.com/gin-gonic/gin"
    "github.com/mojocn/base64Captcha"
    "go.uber.org/zap"
    "net/http"
)

var store = base64Captcha.DefaultMemStore

func GetCaptcha(c *gin.Context) {
    driver := base64Captcha.NewDriverDigit(100, 220, 5, 0.7, 80)
    cp := base64Captcha.NewCaptcha(driver, store)
    id, bas64, err := cp.Generate()       // 开始生成

    if err != nil {
        Logger, err := NewLogger() // 记录日志 2
        su := Logger.Sugar()
        defer su.Sync()
        su.Info("验证码生成错误原因",
            zap.String("err", err.Error()),
        )

        c.JSON(http.StatusInternalServerError, gin.H{
            "msg": "验证码生成错误!",
        })
        return
    }

    c.JSON(http.StatusOK, gin.H{
        "CaptchaId":   id,
        "CaptchaPath": bas64,
    })
}

 

 返回结果:

 

解码:

func DecodeCaptcha(c *gin.Context) {
    if !store.Verify(c.Query("aptcha_id"), c.Query("captcha_path"), true) {
        c.JSON(http.StatusBadRequest, gin.H{
            "captcha": "验证码偶误",
        })
    }
}