Improve SMS code

This commit is contained in:
Gucheng Wang
2023-03-03 22:44:22 +08:00
parent aad9201b24
commit ef3d323f63
4 changed files with 19 additions and 13 deletions

View File

@ -20,6 +20,7 @@ package controllers
import (
"encoding/json"
"fmt"
"strings"
"github.com/casdoor/casdoor/object"
"github.com/casdoor/casdoor/util"
@ -97,8 +98,11 @@ func (c *ApiController) SendEmail() {
return
}
code := "123456"
// "You have requested a verification code at Casdoor. Here is your code: %s, please enter in 5 minutes."
content := fmt.Sprintf(emailForm.Content, code)
for _, receiver := range emailForm.Receivers {
err = object.SendEmail(provider, emailForm.Title, emailForm.Content, receiver, emailForm.Sender)
err = object.SendEmail(provider, emailForm.Title, content, receiver, emailForm.Sender)
if err != nil {
c.ResponseError(err.Error())
return
@ -130,10 +134,9 @@ func (c *ApiController) SendSms() {
return
}
invalidReceivers := checkSmsReceivers(smsForm)
invalidReceivers := getInvalidSmsReceivers(smsForm)
if len(invalidReceivers) != 0 {
c.ResponseError(fmt.Sprintf(c.T("service:Invalid phone receivers: %s"), invalidReceivers))
c.ResponseError(fmt.Sprintf(c.T("service:Invalid phone receivers: %s"), strings.Join(invalidReceivers, ", ")))
return
}

View File

@ -198,7 +198,7 @@ func checkQuotaForUser(count int) error {
return nil
}
func checkSmsReceivers(smsForm SmsForm) []string {
func getInvalidSmsReceivers(smsForm SmsForm) []string {
var invalidReceivers []string
for _, receiver := range smsForm.Receivers {
// The receiver phone format: E164 like +8613854673829 +441932567890

View File

@ -17,14 +17,17 @@ package object
import (
"strings"
"github.com/casdoor/go-sms-sender"
sender "github.com/casdoor/go-sms-sender"
)
func getSmsClient(provider *Provider) (go_sms_sender.SmsClient, error) {
client, err := go_sms_sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.TemplateCode, provider.AppId)
func getSmsClient(provider *Provider) (sender.SmsClient, error) {
var client sender.SmsClient
var err error
if provider.Type == go_sms_sender.HuaweiCloud {
client, err = go_sms_sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.TemplateCode, provider.ProviderUrl, provider.AppId)
if provider.Type == sender.HuaweiCloud {
client, err = sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.TemplateCode, provider.ProviderUrl, provider.AppId)
} else {
client, err = sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.TemplateCode, provider.AppId)
}
if err != nil {
return nil, err
@ -39,14 +42,14 @@ func SendSms(provider *Provider, content string, phoneNumbers ...string) error {
return err
}
if provider.Type == go_sms_sender.Aliyun {
if provider.Type == sender.Aliyun {
for i, number := range phoneNumbers {
phoneNumbers[i] = strings.TrimPrefix(number, "+")
}
}
params := map[string]string{}
if provider.Type == go_sms_sender.TencentCloud {
if provider.Type == sender.TencentCloud {
params["0"] = content
} else {
params["code"] = content

View File

@ -31,7 +31,7 @@ export function sendTestSms(provider, phone) {
function testSmsProvider(provider, phone = "") {
const SmsForm = {
content: provider.content,
content: "123456",
receivers: [phone],
};