|
|
|
package controllers
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/HFO4/cloudreve/pkg/conf"
|
|
|
|
"github.com/HFO4/cloudreve/pkg/serializer"
|
|
|
|
"github.com/HFO4/cloudreve/pkg/util"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/mojocn/base64Captcha"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Captcha 获取验证码
|
|
|
|
func Captcha(c *gin.Context) {
|
|
|
|
// 验证码配置
|
|
|
|
var configD = base64Captcha.ConfigCharacter{
|
|
|
|
Height: conf.CaptchaConfig.Height,
|
|
|
|
Width: conf.CaptchaConfig.Width,
|
|
|
|
//const CaptchaModeNumber:数字,CaptchaModeAlphabet:字母,CaptchaModeArithmetic:算术,CaptchaModeNumberAlphabet:数字字母混合.
|
|
|
|
Mode: conf.CaptchaConfig.Mode,
|
|
|
|
ComplexOfNoiseText: conf.CaptchaConfig.ComplexOfNoiseText,
|
|
|
|
ComplexOfNoiseDot: conf.CaptchaConfig.ComplexOfNoiseDot,
|
|
|
|
IsShowHollowLine: conf.CaptchaConfig.IsShowHollowLine,
|
|
|
|
IsShowNoiseDot: conf.CaptchaConfig.IsShowNoiseDot,
|
|
|
|
IsShowNoiseText: conf.CaptchaConfig.IsShowNoiseText,
|
|
|
|
IsShowSlimeLine: conf.CaptchaConfig.IsShowSlimeLine,
|
|
|
|
IsShowSineLine: conf.CaptchaConfig.IsShowSineLine,
|
|
|
|
CaptchaLen: conf.CaptchaConfig.CaptchaLen,
|
|
|
|
}
|
|
|
|
|
|
|
|
// 生成验证码
|
|
|
|
idKeyD, capD := base64Captcha.GenerateCaptcha("", configD)
|
|
|
|
// 将验证码UID存入Session以便后续验证
|
|
|
|
util.SetSession(c, map[string]interface{}{
|
|
|
|
"captchaID": idKeyD,
|
|
|
|
})
|
|
|
|
|
|
|
|
// 将验证码图像编码为Base64
|
|
|
|
base64stringD := base64Captcha.CaptchaWriteToBase64Encoding(capD)
|
|
|
|
|
|
|
|
c.JSON(200, serializer.Response{
|
|
|
|
Code: 0,
|
|
|
|
Data: base64stringD,
|
|
|
|
})
|
|
|
|
}
|