提取接口添加IP与实名验证; SendSms 添加调试模式验证码发送跳过逻辑
This commit is contained in:
10
README.md
10
README.md
@@ -3,14 +3,14 @@
|
||||
核心流程:
|
||||
|
||||
- [x] 注册与登录
|
||||
- [ ] 对接接口
|
||||
- [x] 对接接口
|
||||
- [ ] 人机风险分级验证
|
||||
- [ ] jwt 签发
|
||||
- [x] 鉴权
|
||||
- [x] 实名认证
|
||||
- [x] 对接接口
|
||||
- [x] 充值或购买
|
||||
- [ ] 对接接口
|
||||
- [x] 对接接口
|
||||
- [ ] 提取记录
|
||||
- [x] 提取 IP
|
||||
- [ ] 长效提取
|
||||
@@ -24,14 +24,8 @@
|
||||
|
||||
错误处理类型转换失败问题
|
||||
|
||||
transition 服务,查询后立即完成,提供是否访问接口参数,统一主动与回调调用
|
||||
|
||||
callback 结果直接由 api 端提供,不通过前端转发
|
||||
|
||||
统一套餐创建逻辑
|
||||
|
||||
删除账单的状态字段,状态从关联表中计算获得
|
||||
|
||||
统一简化包导入别名
|
||||
|
||||
更新数据库填充
|
||||
|
||||
@@ -28,6 +28,17 @@ func CreateChannel(c *fiber.Ctx) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// 获取用户信息
|
||||
user, err := q.User.
|
||||
Where(q.User.ID.Eq(authContext.Payload.Id)).
|
||||
Take()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if user.IDToken == "" {
|
||||
return fiber.NewError(fiber.StatusForbidden, "账号未实名")
|
||||
}
|
||||
|
||||
count, err := q.Whitelist.Where(
|
||||
q.Whitelist.UserID.Eq(authContext.Payload.Id),
|
||||
q.Whitelist.Host.Eq(c.IP()),
|
||||
@@ -36,7 +47,7 @@ func CreateChannel(c *fiber.Ctx) error {
|
||||
return err
|
||||
}
|
||||
if count == 0 {
|
||||
return fiber.NewError(fiber.StatusForbidden, fmt.Sprintf("forbidden %s", c.IP()))
|
||||
return fiber.NewError(fiber.StatusForbidden, fmt.Sprintf("非白名单IP %s", c.IP()))
|
||||
}
|
||||
|
||||
req := new(CreateChannelReq)
|
||||
|
||||
@@ -78,25 +78,27 @@ func (s *verifierService) SendSms(ctx context.Context, phone string, purpose Ver
|
||||
code := rand.Intn(900000) + 100000 // 6-digit code between 100000-999999
|
||||
|
||||
// 发送短信验证码
|
||||
params, err := json.Marshal(map[string]string{
|
||||
"code": strconv.Itoa(code),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
response, err := g.Aliyun.Sms.SendSms(&client.SendSmsRequest{
|
||||
PhoneNumbers: &phone,
|
||||
SignName: &env.AliyunSmsSignature,
|
||||
TemplateCode: &env.AliyunSmsTemplateLogin,
|
||||
TemplateParam: u.P(string(params)),
|
||||
})
|
||||
if err != nil {
|
||||
_ = rds.Client.Del(ctx, key, keyLock).Err()
|
||||
return err
|
||||
}
|
||||
if response.Body.Code == nil || *response.Body.Code != "OK" {
|
||||
_ = rds.Client.Del(ctx, key, keyLock).Err()
|
||||
return VerifierServiceError("验证码发送失败")
|
||||
if env.DebugExternalChange {
|
||||
params, err := json.Marshal(map[string]string{
|
||||
"code": strconv.Itoa(code),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
response, err := g.Aliyun.Sms.SendSms(&client.SendSmsRequest{
|
||||
PhoneNumbers: &phone,
|
||||
SignName: &env.AliyunSmsSignature,
|
||||
TemplateCode: &env.AliyunSmsTemplateLogin,
|
||||
TemplateParam: u.P(string(params)),
|
||||
})
|
||||
if err != nil {
|
||||
_ = rds.Client.Del(ctx, key, keyLock).Err()
|
||||
return err
|
||||
}
|
||||
if response.Body.Code == nil || *response.Body.Code != "OK" {
|
||||
_ = rds.Client.Del(ctx, key, keyLock).Err()
|
||||
return VerifierServiceError("验证码发送失败")
|
||||
}
|
||||
}
|
||||
|
||||
// 设置验证码
|
||||
|
||||
@@ -46,6 +46,7 @@ func (s *Server) Run() error {
|
||||
|
||||
// config
|
||||
s.fiber = fiber.New(fiber.Config{
|
||||
ProxyHeader: fiber.HeaderXForwardedFor,
|
||||
ErrorHandler: ErrorHandler,
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user