go-captcha
go-captcha, 一个简洁易用、交互友好、高安全性的点选行为验证码 Go 库 ,采用 “验证码展示-采集用户行为-验证行为数据” 为流程,用户无需键盘手动输入,极大优化传统验证码用户体验不佳的问题,支持PC端及移动端,带有与前端交互的DEMO。
- Github:/wenlng/go-captcha
- Go实例代码:/wenlng/go-captcha-example
- Vue实例代码:/wenlng/go-captcha-vue
- React实例代码:/wenlng/go-captcha-react
- 在线演示:http://47.104.180.148:8081/go_captcha_demo
- 作者网站:
中国Go模块代理
- GoProxy /goproxy/
- AliProxy: /goproxy/
- OfficialProxy: /
- ChinaProxy:
- Other:
设置Go模块的代理
- Window
$ set GO111MODULE=on
$ set GOPROXY=,direct
### The Golang 1.13+ can be executed directly
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=,direct
- Linux or Mac
$ export GO111MODULE=on
$ export GOPROXY=,direct
### or
$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=,direct" >> ~/.profile
$ source ~/.profile
依赖golang官方标准库
$ go get -u /golang/freetype
$ go get -u /x/crypto
$ go get -u /x/image
安装模块
$ go get -u /wenlng/go-captcha/captcha
引入模块
package main
import "/wenlng/go-captcha/captcha"
func main(){
// ....
}
快速使用
package main
import (
"fmt"
"os"
"/wenlng/go-captcha/captcha"
)
func main(){
// Captcha Single Instances
capt := captcha.GetCaptcha()
// 生成验证码
dots, b64, tb64, key, err := capt.Generate()
if err != nil {
panic(err)
return
}
// 主图base64
fmt.Println(len(b64))
// 缩略图base64
fmt.Println(len(tb64))
// 唯一key
fmt.Println(key)
// 文本位置验证数据
fmt.Println(dots)
}
验证码实例
- 创建实例或者获取单例模式的实例
package main
import (
"fmt"
"/wenlng/go-captcha/captcha"
)
func main(){
// 创建验证码实例
// capt := ()
// 单例模式的验证码实例
capt := captcha.GetCaptcha()
// ====================================================
fmt.Println(capt)
}
验证码配置
v1.2.3版本后大图默认尺寸为:300×240px,小图默认尺寸为:150×40px。
文本相关配置
默认情况下内置了定制的字体。如果设置了其他中文的文字,则可能需要设置字体文件。
package main
import (
"fmt"
"/wenlng/go-captcha/captcha"
)
func main(){
capt := captcha.GetCaptcha()
// ====================================================
// Method: SetRangChars (chars []string) error;
// Desc: 设置验证码文本随机种子
// ====================================================
// 字符
//chars := "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
//_ = ((chars, ""))
// 双字母
//chars := []string{"HE","CA","WO","NE","HT","IE","PG","GI","CH","CO","DA"}
//_ = (chars)
// 汉字
chars := []string