美文网首页
gin生成base64的验证码图片

gin生成base64的验证码图片

作者: 一只肥豚鼠 | 来源:发表于2019-02-15 19:22 被阅读12次

第一步 下载第三方组件

go get -u github.com/mojocn/base64Captcha

下载过程中可能出错,主要原因还是go get golang.org/x/image 失败

解决方法:①cd $GOPATH/src/golang.org/x
② git clone https://github.com/golang/image

第二歩 设置CaptchaConfig类

type CaptchaConfig struct {
    Id              string
    CaptchaType     string
    VerifyValue     string
    ConfigAudio     base64Captcha.ConfigAudio
    ConfigCharacter base64Captcha.ConfigCharacter
    ConfigDigit     base64Captcha.ConfigDigit
}

第三歩 创建CaptchaConfig类实例

var (
    captchaConfig *CaptchaConfig
    captchaConfigOnce sync.Once
)

// 获取base64验证码基本配置
func GetCaptchaConfig() *CaptchaConfig {
    captchaConfigOnce.Do(func() {
        captchaConfig = &CaptchaConfig{
            Id:              "",
            CaptchaType:     "character",
            VerifyValue:     "",
            ConfigAudio:     base64Captcha.ConfigAudio{},
            ConfigCharacter: base64Captcha.ConfigCharacter{
                Height:             60,
                Width:              240,
                Mode:               2,
                IsUseSimpleFont:    false,
                ComplexOfNoiseText: 0,
                ComplexOfNoiseDot:  0,
                IsShowHollowLine:   false,
                IsShowNoiseDot:     false,
                IsShowNoiseText:    false,
                IsShowSlimeLine:    false,
                IsShowSineLine:     false,
                CaptchaLen:         0,
            },
            ConfigDigit:     base64Captcha.ConfigDigit{},
        }
    })
    return captchaConfig
}

第四歩 API部分

const (
    CAPTCHA_IS_RIGHT = 0
    CAPTCHA_IS_ERROR = -7
)

func GenerateCaptchaHandler(c *gin.Context) {
    // get session
    session := sessions.Default(c)
    captchaConfig := util.GetCaptchaConfig()
    //create base64 encoding captcha
    //创建base64图像验证码
    config := captchaConfig.ConfigCharacter
    //GenerateCaptcha 第一个参数为空字符串,包会自动在服务器一个随机种子给你产生随机uiid.
    captchaId, digitCap := base64Captcha.GenerateCaptcha(captchaConfig.Id, config)
    base64Png := base64Captcha.CaptchaWriteToBase64Encoding(digitCap)
    session.Set("captchaId", captchaId)
    c.String(http.StatusOK, base64Png)
}

//  验证 验证码是否正确
// captchaId: 存于session中
// verifyValue: 客户端发来的验证码
func VerfiyCaptcha(captchaId, verifyValue string) (int, error){
    verifyResult := base64Captcha.VerifyCaptcha(captchaId, verifyValue)
    if verifyResult {
        return CAPTCHA_IS_RIGHT,nil
    } else {
        return CAPTCHA_IS_ERROR, fmt.Errorf("captcha is error")
    }
}

第五歩 简单介绍base64Captcha库的一些变量,参数

CaptchaModeNumber:数字,
CaptchaModeAlphabet:字母,
CaptchaModeArithmetic:算术,
CaptchaModeNumberAlphabet:数字字母混合.

相关文章

  • gin生成base64的验证码图片

    第一步 下载第三方组件 go get -u github.com/mojocn/base64Captcha 下载过...

  • 用户验证

    验证码: 随机生成由英文字母与数字组成的字符串,生成一个base64图片,在前端显示图片。比较输入的验证码与实际字...

  • Java生成图片验证码

    Java生成图片验证码 手动实现图片验证码生成 调用演示

  • golang包快速生成base64验证码

    base64Captcha快速生成base64编码图片验证码字符串 支持多种样式,算术,数字,字母,混合模式,语音...

  • PIL image 转 base64

    PIL image to base64 最近有个做验证码的需求,要求直接返回图片base64编码后的数据验证码是通...

  • base64生成图片文件

    base64生成图片文件 path为图片文件地址,可根据项目自行生成或修改baseImg为base64图片 PS:...

  • Django ORM性能优化 和 图片验证码

    一,ORM性能相关 二, 图片验证码 1, 随机生成五位数的验证码 2, 随机生成位数的图片验证码

  • 验证码base64获取

    目前遇到base64验证码的识别问题,使用代码无法解决。最后的解决方案是:1.拿到验证码图片的base64编码2....

  • 参考的文章

    验证码 图片验证码前端怎样获取后端生成的验证码图片,并且点击图片的时候改变验证码 记住密码 前端记住密码功能密码安...

  • Python生成字母验证码图片

    使用Python生成字母验证码图片:

网友评论

      本文标题:gin生成base64的验证码图片

      本文链接:https://www.haomeiwen.com/subject/zuwmeqtx.html