49 lines
1.6 KiB
Go
49 lines
1.6 KiB
Go
package router
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"hfb_sys/backend/internal/config"
|
|
smsintegration "hfb_sys/backend/internal/integrations/sms"
|
|
"hfb_sys/backend/internal/modules/realname"
|
|
"hfb_sys/backend/pkg/crypto"
|
|
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
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("阿里云短信服务初始化失败", zap.Error(err))
|
|
return smsintegration.NewUnavailableProvider(err)
|
|
}
|
|
return provider
|
|
default:
|
|
return smsintegration.NewMockProvider(logger)
|
|
}
|
|
}
|
|
|
|
func newRealnameProvider(cfg config.Config, encryptor crypto.Encryptor, logger *zap.Logger) realname.Provider {
|
|
switch strings.ToLower(strings.TrimSpace(cfg.Realname.Provider)) {
|
|
case "cloudmarket", "aliyun_cloudmarket":
|
|
provider, err := realname.NewCloudMarketProvider(realname.CloudMarketConfig{
|
|
URL: cfg.Realname.CloudMarketURL, AppCode: cfg.Realname.CloudMarketAppCode, Encryptor: encryptor,
|
|
})
|
|
if err != nil {
|
|
logger.Warn("实名认证服务初始化失败", zap.Error(err))
|
|
return realname.NewUnavailableProvider(err)
|
|
}
|
|
return provider
|
|
default:
|
|
return realname.NewMockProvider(encryptor)
|
|
}
|
|
}
|