48 lines
1.2 KiB
Go
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
|
|
}
|