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.
70 lines
1.2 KiB
70 lines
1.2 KiB
package http |
|
|
|
import ( |
|
"net/http" |
|
|
|
bm "go-common/library/net/http/blademaster" |
|
) |
|
|
|
// get user get a image. |
|
func get(c *bm.Context) { |
|
var ( |
|
err error |
|
v = new(struct { |
|
Token string `form:"token" validate:"required"` |
|
Bid string `form:"bid" validate:"required"` |
|
}) |
|
img []byte |
|
) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if img, err = svr.CaptchaImg(c, v.Token, v.Bid); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
code := http.StatusOK |
|
c.Render(code, Image{ |
|
Body: img, |
|
}) |
|
} |
|
|
|
// token third business get token. |
|
func token(c *bm.Context) { |
|
var ( |
|
err error |
|
v = new(struct { |
|
Bid string `form:"bid" validate:"required"` |
|
}) |
|
token, url string |
|
) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if url, token, err = svr.Token(c, v.Bid); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
data := make(map[string]interface{}, 1) |
|
data["data"] = map[string]string{ |
|
"token": token, |
|
"url": url, |
|
} |
|
c.JSONMap(data, nil) |
|
} |
|
|
|
// verify third business verify. |
|
func verify(c *bm.Context) { |
|
var ( |
|
err error |
|
v = new(struct { |
|
Token string `form:"token" validate:"required"` |
|
Code string `form:"code" validate:"required"` |
|
}) |
|
) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
err = svr.VerifyCaptcha(c, v.Token, v.Code) |
|
c.JSON(nil, err) |
|
}
|
|
|