2023-11-08 21:53:07 +08:00

64 lines
1.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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))
}
// 获取图像根据验证器idid从地址栏获取
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)
}