v1.0.0
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"strconv"
|
||||
"sun-panel/lib/captcha"
|
||||
"sun-panel/lib/cmn"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type CaptchaApi struct {
|
||||
ErrMsg string // 错误信息
|
||||
}
|
||||
|
||||
// 获取图像
|
||||
func (c *CaptchaApi) GetImage(ctx *gin.Context) {
|
||||
key := cmn.BuildRandCode(16, cmn.RAND_CODE_MODE2)
|
||||
width, _ := strconv.Atoi(ctx.Param("width"))
|
||||
height, _ := strconv.Atoi(ctx.Param("height"))
|
||||
if width == 0 || width > 500 {
|
||||
width = 120
|
||||
}
|
||||
if height == 0 || height > 500 {
|
||||
height = 44
|
||||
}
|
||||
// 设置网页验证码的cookie
|
||||
ctx.SetCookie("CaptchaId", key, 3600, "/", "", false, false)
|
||||
base64Str := captcha.GenerateCaptchaHandler(key, width, height)
|
||||
_ = base64Str
|
||||
// base64 字符串一般会包含头部 data:image/xxx;base64, 需要去除
|
||||
baseImg, _ := base64.StdEncoding.DecodeString(base64Str[22:])
|
||||
_, _ = ctx.Writer.WriteString(string(baseImg))
|
||||
}
|
||||
|
||||
// 获取图像根据验证器id,id从地址栏获取
|
||||
func (c *CaptchaApi) GetImageByCaptchaId(ctx *gin.Context) {
|
||||
// key := cmn.BuildRandCode(16, cmn.RAND_CODE_MODE2)
|
||||
width, _ := strconv.Atoi(ctx.Param("width"))
|
||||
height, _ := strconv.Atoi(ctx.Param("height"))
|
||||
captchaId := ctx.Param("captchaId")
|
||||
if width == 0 || width > 500 {
|
||||
width = 120
|
||||
}
|
||||
if height == 0 || height > 500 {
|
||||
height = 44
|
||||
}
|
||||
// 设置网页验证码的cookie
|
||||
base64Str := captcha.GenerateCaptchaHandler(captchaId, width, height)
|
||||
_ = base64Str
|
||||
// base64 字符串一般会包含头部 data:image/xxx;base64, 需要去除
|
||||
baseImg, _ := base64.StdEncoding.DecodeString(base64Str[22:])
|
||||
_, _ = ctx.Writer.WriteString(string(baseImg))
|
||||
}
|
||||
|
||||
func (c *CaptchaApi) CheckVCode(id, vcode string) {
|
||||
// Captcha.Store = base64Captcha.DefaultMemStore
|
||||
// if store.Verify(id, vcode, true) {
|
||||
// body = map[string]interface{}{"code": 1001, "msg": "ok"}
|
||||
// }
|
||||
// w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||
// json.NewEncoder(w).Encode(body)
|
||||
}
|
||||
Reference in New Issue
Block a user