37 lines
812 B
Go
37 lines
812 B
Go
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/mojocn/base64Captcha"
|
|
"wireguard-dashboard/component"
|
|
"wireguard-dashboard/utils"
|
|
)
|
|
|
|
type captcha struct{}
|
|
|
|
func Captcha() captcha {
|
|
return captcha{}
|
|
}
|
|
|
|
// GenerateCaptcha
|
|
// @description: 生成验证码
|
|
// @receiver captcha
|
|
// @param c
|
|
func (captcha) GenerateCaptcha(c *gin.Context) {
|
|
math := base64Captcha.DriverMath{Height: 120, Width: 480, Fonts: []string{"ApothecaryFont.ttf", "3Dumb.ttf"}}
|
|
mathDriver := math.ConvertFonts()
|
|
|
|
capt := base64Captcha.NewCaptcha(mathDriver, component.CaptchaStore{})
|
|
|
|
id, base64Str, _, err := capt.Generate()
|
|
if err != nil {
|
|
utils.GinResponse(c).FailedWithErr("生成验证码失败: %v", err)
|
|
return
|
|
}
|
|
|
|
utils.GinResponse(c).OKWithData(map[string]any{
|
|
"id": id,
|
|
"captcha": base64Str,
|
|
})
|
|
}
|