f
This commit is contained in:
@@ -185,6 +185,8 @@ daily_ratelimit:
|
||||
# 📱 短信服务配置
|
||||
# ===========================================
|
||||
sms:
|
||||
# 短信服务商切换:tencent / aliyun
|
||||
provider: "tencent"
|
||||
# 滑块验证码配置
|
||||
captcha_enabled: true # 是否启用滑块验证码
|
||||
captcha_secret: "" # 阿里云验证码密钥(可选)
|
||||
|
||||
@@ -166,6 +166,8 @@ daily_ratelimit:
|
||||
# 📱 短信服务配置
|
||||
# ===========================================
|
||||
sms:
|
||||
# 短信服务商切换:tencent / aliyun
|
||||
provider: "aliyun"
|
||||
# 滑块验证码配置
|
||||
captcha_enabled: false # 是否启用滑块验证码
|
||||
captcha_secret: "" # 阿里云验证码密钥(可选)
|
||||
|
||||
@@ -42,6 +42,8 @@ jwt:
|
||||
# 📱 短信服务配置
|
||||
# ===========================================
|
||||
sms:
|
||||
# 短信服务商切换:tencent / aliyun
|
||||
provider: "tencent"
|
||||
# 滑块验证码配置
|
||||
captcha_enabled: true # 是否启用滑块验证码
|
||||
captcha_secret: "" # 阿里云验证码密钥(可选)
|
||||
|
||||
@@ -23,6 +23,16 @@ type AliSMSService struct {
|
||||
|
||||
// NewAliSMSService 创建阿里云短信服务
|
||||
func NewAliSMSService(cfg config.SMSConfig, logger *zap.Logger) (*AliSMSService, error) {
|
||||
if cfg.AccessKeyID == "" || cfg.AccessKeySecret == "" {
|
||||
return nil, fmt.Errorf("阿里云短信未配置 access_key_id / access_key_secret")
|
||||
}
|
||||
if cfg.SignName == "" {
|
||||
return nil, fmt.Errorf("阿里云短信未配置 sign_name")
|
||||
}
|
||||
if cfg.TemplateCode == "" {
|
||||
return nil, fmt.Errorf("阿里云短信未配置 template_code")
|
||||
}
|
||||
|
||||
client, err := dysmsapi.NewClientWithAccessKey("cn-hangzhou", cfg.AccessKeyID, cfg.AccessKeySecret)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("创建短信客户端失败: %w", err)
|
||||
|
||||
@@ -21,12 +21,16 @@ type SMSSender interface {
|
||||
// provider 为空时默认 tencent。
|
||||
func NewSMSSender(cfg config.SMSConfig, logger *zap.Logger) (SMSSender, error) {
|
||||
if cfg.MockEnabled {
|
||||
logger.Info("短信服务使用 Mock 模式,已跳过云厂商发送")
|
||||
return NewMockSMSService(logger), nil
|
||||
}
|
||||
p := strings.ToLower(strings.TrimSpace(cfg.Provider))
|
||||
if p == "" {
|
||||
p = "tencent"
|
||||
}
|
||||
|
||||
logger.Info("初始化短信服务商", zap.String("provider", p))
|
||||
|
||||
switch p {
|
||||
case "tencent":
|
||||
return NewTencentSMSService(cfg, logger)
|
||||
|
||||
Reference in New Issue
Block a user