You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
2.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## 验证码
> 1.基于 `github.com/dchest/captcha` 包封装.
> 2.本项目只提供了数字验证功能,没有封装语音验证功能.
### 定义的路由地址
> 1.[路由地址](../routers/web.go)
### 验证码业务控制器地址
> 1.[验证码业务](../app/http/controller/chaptcha/chaptcha.go) , 验证数字长度、验证码尺寸(宽 x 高)在这里设置.
### 使用步骤
> 1.获取验证码ID等信息
```code
# get 方式请求获取验证ID等信息
http://127.0.0.1:20201/captcha/
#返回值中携带了获取验证码图片的地址以及校验地址
```
> 2.获取验证码
```code
# get , 根据步骤1中返回值提示获取 验证码ID
http://127.0.0.1:20201/captcha/验证码ID.png
```
> 3.校验验证码
```code
# get , 根据步骤1中返回值提示进行校验验证即可
http://127.0.0.1:20201/captcha/验证码ID/验证码正确值
```
### 任何路由(接口)都可以调用我们封装好的验证码中间件
- 1.已经封装好的验证码中间件authorization.CheckCaptchaAuth()
- 2.一般是登录接口,需要验证码校验,那么我们可以直接调用验证码中间件增加校验机制。
- 3.注意:如果直接调用了验证码中间件,一般都是和登陆接口搭配,所以请求方式为 `POST`
```code
// 已有的登陆接口(路由),不需要验证码即可登陆
noAuth.POST("login", validatorFactory.Create(consts.ValidatorPrefix+"UsersLogin"))
// 只需要添加验证码中间件即可启动登陆前的验证机制
// 本质上就是给登陆接口增加了2个参数验证码id提交时的键captcha_id 和 验证码值提交时的键 captcha_value具体参见配置文件
//noAuth.Use(authorization.CheckCaptchaAuth()).POST("login", validatorFactory.Create(consts.ValidatorPrefix+"UsersLogin"))
```
### 备注说明
> 1.验证码ID一旦提交到校验接口步骤3进行验证不管输入的验证码正确与否该ID都会失败需要从步骤1开始重新获取.