## 图片验证码
orange 图片验证码能快速生成字符类型的图片验证码,通过sessioin存储对验证码进行校验。
### 快速使用
#### 生成图片验证码
- 使用前先将配置中的 session 功能开启;
- 在控制器方法中添加
```
// 第一个参数是控制器方法中的 context
// 第二个参数是生成的字符个数 一般4-6
// 第三,四个参数是图片的宽,高,可以不填,默认尺寸是180*60
return captcha.CaptchaImgShow(c *app.Context, n int, width height int)
// 一个控制器的完整例子
func Captcha(c *app.Context) error {
return captcha.CaptchaImgShow(c, 4)
}
```
有的时候我们业务中可能希望能获得生成验证码的具体数据进行业务处理,可以通过如下方法获取
~~~
// 一个控制器的完整例子
// CaptchaImgByte方法能获取到具体的验证码数据和图片 byte 数据
func CaptchaCode(c *app.Context) error {
text, imgByte := captcha.CaptchaImgByte(c, 4)
fmt.Println(text, imgByte)
return c.ToString(text)
}
~~~
#### 校验验证码正确性
~~~
// 这是一个控制器函数
func VerifyImg(c *app.Context) error {
// 获取 GET 参数中的验证码
code := c.Request().FormValue("code")
// 校验验证码的正确性,返回值是布尔类型
ret:= captcha.CaptchaVerify(c, code)
return c.ToJson(map[string]interface{}{
"result": ret,
})
}
~~~
图片验证码效果图预览
![](https://img.kancloud.cn/58/6f/586ff08793e2e75544af6ec48c91fe5c_405x235.png)