对接阿里云短信OK

This commit is contained in:
yml2213
2026-05-29 12:11:13 +08:00
parent a334f1837d
commit eb80a3ba84
14 changed files with 495 additions and 29 deletions
+25 -1
View File
@@ -1,8 +1,11 @@
package router
import (
"strings"
"hfb_sys/backend/internal/config"
"hfb_sys/backend/internal/handler"
smsintegration "hfb_sys/backend/internal/integrations/sms"
"hfb_sys/backend/internal/middleware"
"hfb_sys/backend/internal/modules/adminaudit"
"hfb_sys/backend/internal/modules/adminauth"
@@ -44,7 +47,8 @@ func New(cfg config.Config, deps Dependencies, logger *zap.Logger) *gin.Engine {
if deps.DB != nil {
userRepo = auth.NewUserRepository(deps.DB)
}
authService := auth.NewService(userRepo, deps.Redis, jwtManager, logger)
smsProvider := newSMSProvider(cfg, logger)
authService := auth.NewService(userRepo, deps.Redis, jwtManager, smsProvider, logger)
authHandler := auth.NewHandler(authService)
var adminAuthRepo *adminauth.Repository
if deps.DB != nil {
@@ -336,3 +340,23 @@ func New(cfg config.Config, deps Dependencies, logger *zap.Logger) *gin.Engine {
return engine
}
func newSMSProvider(cfg config.Config, logger *zap.Logger) smsintegration.Provider {
switch strings.ToLower(strings.TrimSpace(cfg.SMS.Provider)) {
case "aliyun":
provider, err := smsintegration.NewAliyunProvider(smsintegration.AliyunConfig{
AccessKeyID: cfg.SMS.AliyunAccessKeyID,
AccessKeySecret: cfg.SMS.AliyunAccessKeySecret,
Endpoint: cfg.SMS.AliyunEndpoint,
SignName: cfg.SMS.AliyunSignName,
LoginTemplateCode: cfg.SMS.AliyunLoginTemplateCode,
}, logger)
if err != nil {
logger.Warn("aliyun sms provider unavailable; sms send will fail", zap.Error(err))
return smsintegration.NewUnavailableProvider(err)
}
return provider
default:
return smsintegration.NewMockProvider(logger)
}
}