32 lines
926 B
Go
32 lines
926 B
Go
package geetest
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
// 极验行为验证封装
|
|
// 参数未配置时返回 ErrNotConfigured,前端可降级为图形验证码
|
|
|
|
var ErrNotConfigured = errors.New("极验未配置,请联系管理员")
|
|
|
|
type Config struct {
|
|
CaptchaID string
|
|
CaptchaKey string
|
|
}
|
|
|
|
// Validate 校验极验二次验证结果
|
|
// lotNumber: 极验返回的 lot_number
|
|
// captchaOutput: 极验返回的 captcha_output
|
|
// passToken: 极验返回的 pass_token
|
|
// genTime: 极验返回的 gen_time
|
|
func Validate(cfg Config, lotNumber, captchaOutput, passToken, genTime string) error {
|
|
if cfg.CaptchaID == "" || cfg.CaptchaKey == "" {
|
|
return ErrNotConfigured
|
|
}
|
|
// TODO: 接入极验官方 SDK 进行二次验证
|
|
// 官方流程:用 captcha_id + lot_number + captcha_output + pass_token + gen_time
|
|
// 向极验服务器发送 POST 请求验证
|
|
// 参考:https://docs.geetest.com/gt4/apirefer/api/server
|
|
return nil
|
|
}
|