瀏覽代碼

验证码不鉴权

ziwen 2 年之前
父節點
當前提交
bdad8b710a
共有 3 個文件被更改,包括 131 次插入5 次删除
  1. 64 0
      controller/pc/pc.go
  2. 65 0
      logic/user/user.go
  3. 2 5
      routers/pc.go

+ 64 - 0
controller/pc/pc.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"github.com/gin-gonic/gin"
 	"hongze/hongze_yb/controller/response"
+	userLogic "hongze/hongze_yb/logic/user"
 	pcModels "hongze/hongze_yb/models/response/pc"
 	"hongze/hongze_yb/models/tables/customer_comment"
 	"hongze/hongze_yb/models/tables/rddp/classify"
@@ -845,4 +846,67 @@ func PcLogin(c *gin.Context) {
 	}
 
 	response.OkData("登录成功", token, c)
+}
+
+// GetSmsCode 获取短信验证码接口
+// @Tags 用户模块
+// @Summary  获取短信验证码
+// @Description 获取短信验证码接口
+// @Security ApiKeyAuth
+// @securityDefinitions.basic BasicAuth
+// @Param mobile	query string true "手机号"
+// @Param area_num	query string true "手机国际区号(中国大陆:86)"
+// @Accept  json
+// @Product json
+// @Success 200 {string} string 获取验证码成功
+// @Failure 400 {string} string 手机号不能为空,请输入手机号
+// @Router /pc_code/get_sms_code [get]
+func GetSmsCode(c *gin.Context) {
+	mobile := c.DefaultQuery("mobile", "")
+	areaNum := c.DefaultQuery("area_num", "")
+	err, errMsg := userLogic.PcSendSmsCode(mobile, areaNum)
+	if err != nil {
+		if errMsg != "" {
+			errMsg = "获取验证码失败"
+		}
+		response.Fail(errMsg, c)
+		return
+	}
+
+	response.Ok("获取验证码成功", c)
+}
+
+// GetEmailCode 获取邮箱验证码接口
+// @Tags 用户模块
+// @Summary  获取邮箱验证码
+// @Description 获取邮箱验证码
+// @Security ApiKeyAuth
+// @securityDefinitions.basic BasicAuth
+// @Param email	query string true "电子邮箱账号"
+// @Accept  json
+// @Product json
+// @Success 200 {string} string 获取验证码成功
+// @Failure 400 {string} string 请输入邮箱地址
+// @Router /user/get_email_code [get]
+func GetEmailCode(c *gin.Context) {
+	email := c.DefaultQuery("email", "")
+	if email == "" {
+		response.Fail("请输入邮箱地址", c)
+		return
+	}
+	if !utils.ValidateEmailFormatat(email) {
+		response.Fail("邮箱格式错误,请重新输入", c)
+		return
+	}
+
+	err, errMsg := userLogic.PcSendEmailCode(email)
+	if err != nil {
+		if errMsg != "" {
+			errMsg = "获取验证码失败"
+		}
+		response.Fail(errMsg, c)
+		return
+	}
+
+	response.Ok("获取验证码成功", c)
 }

+ 65 - 0
logic/user/user.go

@@ -361,3 +361,68 @@ func GetUserTabBar(userInfo user.UserInfo, version string) (list []string, err e
 	}
 	return
 }
+
+// PcSendSmsCode 发送手机短信
+func PcSendSmsCode(mobile, areaNum string) (err error, errMsg string) {
+	if mobile == "" {
+		err = errors.New("请输入手机号")
+		return
+	}
+	msgCode := utils.GetRandDigit(4)
+	var result bool
+	if areaNum == "86" || areaNum == "" || areaNum == "0" {
+		//国内的短信
+		result = services.SendSmsCode(mobile, msgCode)
+	} else {
+		//国际短信
+		result = services.SendSmsCodeGj(mobile, msgCode, areaNum)
+	}
+	//发送成功
+	if result {
+		item := &msg_code.MsgCode{
+			Mobile:          mobile,
+			Code:            msgCode,
+			ExpiredIn:       time.Now().Add(15 * time.Minute).Unix(),
+			Enabled:         1,
+			CreatedTime:     time.Time{},
+			LastUpdatedTime: time.Time{},
+		}
+		err = item.Create()
+	} else {
+		err = errors.New("短信发送失败")
+	}
+	return
+}
+
+// PcSendEmailCode 发送邮件
+func PcSendEmailCode(email string) (err error, errMsg string) {
+	if email == "" {
+		err = errors.New("请输入邮箱地址")
+		return
+	}
+	if !utils.ValidateEmailFormatat(email) {
+		err = errors.New("邮箱格式错误,请重新输入")
+		return
+	}
+	msgCode := utils.GetRandDigit(4)
+	content := "尊敬的用户:</br>您好,感谢您使用弘则研究,您正在进行邮箱验证,本次请求的验证码为:" + msgCode + "(为了保障您账号的安全性,请在15分钟内完成验证。)</br>弘则研究团队 </br>" + time.Now().Format(utils.FormatDateCN)
+	title := "弘则研究登陆验证"
+	//发送邮件
+	result, err := services.SendEmailByHz(title, content, email)
+
+	if result {
+		item := &msg_code.MsgCode{
+			Mobile:          email,
+			Code:            msgCode,
+			ExpiredIn:       time.Now().Add(15 * time.Minute).Unix(),
+			Enabled:         1,
+			CreatedTime:     time.Time{},
+			LastUpdatedTime: time.Time{},
+		}
+		err = item.Create()
+	} else {
+		err = errors.New("发送失败,Err:" + err.Error())
+	}
+
+	return
+}

+ 2 - 5
routers/pc.go

@@ -3,7 +3,6 @@ package routers
 import (
 	"github.com/gin-gonic/gin"
 	"hongze/hongze_yb/controller/pc"
-	"hongze/hongze_yb/controller/user"
 	"hongze/hongze_yb/middleware"
 )
 
@@ -20,8 +19,6 @@ func InitPc(r *gin.Engine)  {
 	rGroup.POST("/getSunCode", pc.GetSunCode)
 	pcGroup := r.Group("api/pc")
 	pcGroup.GET("/login", pc.WechatLogin)
-
-	rGroup2 := r.Group("api/pc_code")
-	rGroup2.GET("/get_sms_code", user.GetSmsCode)
-	rGroup2.GET("/get_email_code", user.GetEmailCode)
+	pcGroup.GET("/get_sms_code", pc.GetSmsCode)
+	pcGroup.GET("/get_email_code", pc.GetEmailCode)
 }