shanshanzhong 6b23ab8152
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 5m51s
refactor(verify): 重构验证码配置结构并优化默认值设置
将验证码配置从直接使用config.VerifyCode改为使用内部verifyCodeConfig结构
优化默认值设置逻辑,提高代码可读性和维护性
2026-01-13 19:32:38 -08:00

70 lines
1.8 KiB
Go

package initialize
import (
"context"
"github.com/perfect-panel/server/pkg/logger"
"github.com/perfect-panel/server/internal/config"
"github.com/perfect-panel/server/internal/svc"
"github.com/perfect-panel/server/pkg/tool"
)
type verifyConfig struct {
TurnstileSiteKey string
TurnstileSecret string
EnableLoginVerify bool
EnableRegisterVerify bool
EnableResetPasswordVerify bool
}
type verifyCodeConfig struct {
VerifyCodeExpireTime int64
VerifyCodeLimit int64
VerifyCodeInterval int64
}
func Verify(svc *svc.ServiceContext) {
logger.Debug("Verify config initialization")
configs, err := svc.SystemModel.GetVerifyConfig(context.Background())
if err != nil {
logger.Error("[Init Verify Config] Get Verify Config Error: ", logger.Field("error", err.Error()))
return
}
var verify verifyConfig
tool.SystemConfigSliceReflectToStruct(configs, &verify)
svc.Config.Verify = config.Verify{
TurnstileSiteKey: verify.TurnstileSiteKey,
TurnstileSecret: verify.TurnstileSecret,
LoginVerify: verify.EnableLoginVerify,
RegisterVerify: verify.EnableRegisterVerify,
ResetPasswordVerify: verify.EnableResetPasswordVerify,
}
logger.Debug("Verify code config initialization")
var vcc verifyCodeConfig
cfg, err := svc.SystemModel.GetVerifyCodeConfig(context.Background())
if err != nil {
logger.Errorf("[Init Verify Config] Get Verify Code Config Error: %s", err.Error())
return
}
tool.SystemConfigSliceReflectToStruct(cfg, &vcc)
if vcc.VerifyCodeExpireTime == 0 {
vcc.VerifyCodeExpireTime = 900
}
if vcc.VerifyCodeLimit == 0 {
vcc.VerifyCodeLimit = 15
}
if vcc.VerifyCodeInterval == 0 {
vcc.VerifyCodeInterval = 60
}
svc.Config.VerifyCode = config.VerifyCode{
ExpireTime: vcc.VerifyCodeExpireTime,
Limit: vcc.VerifyCodeLimit,
Interval: vcc.VerifyCodeInterval,
}
}