ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Gin 中使用 base64Captcha 生成图形验证 码以及分布式架构中配置 Captcha

2021-10-29 13:33:49  阅读:470  来源: 互联网

标签:base64Captcha string err Captcha Gin b64s id


Gin 中使用 base64Captcha 生成图形验证 码以及分布式架构中配置 Captcha

https://github.com/mojocn/base64Captcha
captcha.mojotv.cn
package models
import (
	"github.com/mojocn/base64Captcha"
	"image/color"
)


// 设置自带的 store(可以配置成redis)
var store = base64Captcha.DefaultMemStore

//获取验证码
func MakeCaptcha() (id, b64s string, err error) {
	var driver base64Captcha.Driver
	//配置验证码的参数
	driverString := base64Captcha.DriverString{
		Height: 40,
		Width: 100,
		NoiseCount: 0,
		ShowLineOptions: 2 | 4,
		Length: 4,
		Source: "1234567890qwertyuioplkjhgfdsazxcvbnm",
		BgColor: &color.RGBA{ R: 3, G: 102, B: 214, A: 125, },
		Fonts: []string{"wqy-microhei.ttc"},
	}
	//ConvertFonts 按名称加载字体
	driver = driverString.ConvertFonts()
	//创建 Captcha
	captcha := base64Captcha.NewCaptcha(driver, store)
	//Generate 生成随机 id、base64 图像字符串
	id, b64s, err = captcha.Generate()
	return id, b64s, err


}

//验证验证码
func VerifyCaptcha(id string, capt string)bool{
	if store.Verify(id, capt, false){
		//验证成功
		return true
	} else{
		//验证失败
		return false
	}
}

控制器中调用

func (con LoginController) Captcha(c *gin.Context) {
	id, b64s, err:=models.MakeCaptcha()
	if err != nil {
		//失败
		fmt.Println(err)
	}
	c.JSON(200,gin.H{
		"CaptchaId":id,
		"CaptchaImage":b64s,//验证码的url地址
	})
}

标签:base64Captcha,string,err,Captcha,Gin,b64s,id
来源: https://www.cnblogs.com/chengqiang521/p/15480066.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有