Files
go-common/app/service/main/account-recovery/dao/captcha.go
2019-04-22 18:49:16 +08:00

48 lines
1.2 KiB
Go

package dao
import (
"context"
"net/url"
"go-common/app/service/main/account-recovery/model"
"go-common/library/ecode"
"go-common/library/log"
"go-common/library/net/metadata"
)
// GetToken get open token.
func (d *Dao) GetToken(c context.Context, bid string) (res *model.TokenResq, err error) {
params := url.Values{}
params.Add("bid", bid)
if err = d.httpClient.Get(c, d.c.CaptchaConf.TokenURL, metadata.String(c, metadata.RemoteIP), params, &res); err != nil {
log.Error("GetToken HTTP request err(%v)", err)
return
}
if res.Code != 0 {
log.Error("GetToken service return err(%v)", res.Code)
err = ecode.Int(int(res.Code))
return
}
return
}
// Verify verify code.
func (d *Dao) Verify(c context.Context, code, token string) (ok bool, err error) {
params := url.Values{}
params.Add("token", token)
params.Add("code", code)
res := new(struct {
Code int `json:"code"`
})
if err = d.httpClient.Post(c, d.c.CaptchaConf.VerifyURL, metadata.String(c, metadata.RemoteIP), params, res); err != nil {
log.Error("Verify HTTP request err(%v)", err)
return
}
if res.Code != 0 {
log.Error("Verify service return err(%v)", res.Code)
err = ecode.Int(res.Code)
return
}
return true, nil
}