Categorygithub.com/feiin/go-captcha
modulepackage
0.1.4
Repository: https://github.com/feiin/go-captcha.git
Documentation: pkg.go.dev

# README

go-captcha

golang 实现普通验证码,同时支持中文汉字点击行为验证码

  • 英文数字验证
  • 中文点选验证
  • 干扰线
  • 干扰点
  • 自定义背景颜色
  • 自定义字体颜色
  • 自定义倾斜角度
  • 自定义字体大小
  • 自定义字体

Preview

Quick Start 使用

普通验证码

import (
   "github.com/feiin/go-captcha"
)

cpt := captcha.NewCaptcha(260, 100)

//cpt.SetFontColors(...)
//cpt.SetFont(...)
//cpt.SetFontSize(...)
//cpt.SetSytle(...)
//cpt.SetBackgroundColor(...)


//获取4位随机验证码
result,err := cpt.GenRandomNormalCaptcha(4)

//result 属性
//    - DrawRects   []DrawRect 随机验证码位置
//	  - Text        string     随机验证码字符
//	  - ImageBase64 string     随机验证码base64编码

中文点击行为验证码

验证码输出展示 -> 上传用户行为 -> 验证点击行为数据


import (
   "github.com/feiin/go-captcha"
)

//........................................



cpt := captcha.NewCaptcha(260, 100)
cpt.SetBackgroundColor(color.RGBA{R: uint8(20), G: uint8(8), B: uint8(100), A: uint8(255)})
cpt.Config.Style = captcha.CaptchaStyle_Behavior
cpt.Config.MaxRotate = 20
result, err := cpt.GenBehaviorCNCaptcha()

//可以将result或result.DrawRects信息者结果存入redis或程序内存中等,当上传用户点击行为时,做位置信息校验

//当用户点击验证后,上传点击[]Point位置信息,后端校验
if captcha.ValidBehaviorCaptcha(result,points) {
    //验证通过
} else {
    //验证未过
}

//rects = result.DrawRects
//if captcha.ValidBehaviorRects(rects,points) {
    ////验证通过
//} else {
    ////验证未过
//}

Config属性

type Config struct {
	FontColors     []color.Color
	BackgroupColor color.Color //default white
	FontSize       int         //default 56
	MaxRotate      int         //default 30
	Style          CaptchaStyle
	Font           *truetype.Font //字体
}
  • FontColors 字体颜色,多个时随机字体颜色
  • BackgroupColor 背景颜色
  • FontSize 字体大小
  • MaxRotate 最大旋转角度
  • Style CaptchaStyle_Normal普通验证码,CaptchaStyle_Behavior点击行为验证码

Config设置方法


cpt := NewCaptcha(260, 100)
cpt.Config.FontSize = 24 //等同cpt.SetFontSize(24)
//... 


LICENSE

MIT

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
PointInRect 验证点是否在矩形中.
ValidBehaviorCaptcha 验证行为点击验证码是否正确.
ValidBehaviorRects 验证行为点是否在验证码矩形中.

# Constants

No description provided by the author
No description provided by the author

# Variables

No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Type aliases

No description provided by the author