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 ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"strings"
"github.com/casdoor/casdoor/object" "github.com/casdoor/casdoor/object"
"github.com/casdoor/casdoor/util" "github.com/casdoor/casdoor/util"
@ -97,8 +98,11 @@ func (c *ApiController) SendEmail() {
return 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 { 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 { if err != nil {
c.ResponseError(err.Error()) c.ResponseError(err.Error())
return return
@ -130,10 +134,9 @@ func (c *ApiController) SendSms() {
return return
} }
invalidReceivers := checkSmsReceivers(smsForm) invalidReceivers := getInvalidSmsReceivers(smsForm)
if len(invalidReceivers) != 0 { 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 return
} }

View File

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

View File

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

View File

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