Go base64Captcha 是一个可以用于 Go 语言中生成和验证图形验证码的库。使用该库,我们可以轻松地在我们的应用程序中添加验证码功能。
- 生成验证码
可以通过 NewCaptcha() 函数来生成验证码。该函数需要传入一个配置的结构体 captcha.Config。例如:
config := captcha.Config{
Mode: captcha.CaptchaModeNumber,
Length: 5,
Width: 240,
Height: 80,
MaxSkew: 0.7,
}
captcha := base64Captcha.NewCaptcha(&config)
在这个例子中,我们的验证码是一个数字,长度为 5,宽度为 240,高度为 80,扭曲度最大为 0.7。
生成验证码之后,可以通过 captcha.Text() 方法获取验证码值,并通过 captcha.Challenge() 方法获取验证码图像的 base64 编码字符串。例如:
text := captcha.Text()
challenge := captcha.Challenge()
- 验证验证码
当用户输入验证码之后,我们需要验证验证码是否正确。可以使用 VerifyCaptcha() 函数来验证。该函数需要传入验证码 ID 和用户输入的验证码值。例如:
isCorrect := base64Captcha.VerifyCaptcha(id, value)
id 是生成验证码时返回的验证码 ID,value 是用户输入的验证码值。
如果验证码正确,则 isCorrect 的值为 true,否则为 false。
完整示例:
package main
import (
"fmt"
"github.com/mojocn/base64Captcha"
)
func main() {
config := base64Captcha.Config{
Mode: base64Captcha.CaptchaModeNumber, // 验证码类型:数字
Length: 5, // 验证码长度为5个字符
Width: 240, // 验证码图片的宽度
Height: 80, // 验证码图片的高度
MaxSkew: 0.7, // 验证码的最大扭曲度
}
captcha := base64Captcha.NewCaptcha(&config)
text := captcha.Text() // 获取验证码的值
challenge := captcha.Challenge() // 获取验证码图片的base64编码字符串
fmt.Println("验证码值:", text)
fmt.Println("验证码图片:", challenge)
isCorrect := base64Captcha.VerifyCaptcha(captcha.Id(), "12345") // 假设用户输入的验证码值是12345
if isCorrect {
fmt.Println("验证通过!")
} else {
fmt.Println("验证失败!")
}
}
上述代码中,我们成功使用 Go base64Captcha 库生成了一个基于数字的验证码,并且验证了一个假设的用户输入值是否正确。