|
|
@@ -3,6 +3,7 @@ package user
|
|
|
import (
|
|
|
"context"
|
|
|
"demo/configs"
|
|
|
+ "demo/router"
|
|
|
"demo/share"
|
|
|
"fmt"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
@@ -20,6 +21,7 @@ func UserRouth(engine *gin.RouterGroup) {
|
|
|
user := engine.Group("/user")
|
|
|
{
|
|
|
user.POST("/login", login)
|
|
|
+ user.POST("/register", register)
|
|
|
user.POST("sendSms", SendVerificationCode)
|
|
|
|
|
|
user.GET("/captcha", VerificationCode)
|
|
|
@@ -63,40 +65,93 @@ func login(c *gin.Context) {
|
|
|
var err error
|
|
|
username, _ := data("username")
|
|
|
password, _ := data("password")
|
|
|
+ t, _ := data("type")
|
|
|
// 定义正则表达式
|
|
|
- regexPattern := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`
|
|
|
|
|
|
- // 编译正则表达式
|
|
|
- reg, err := regexp.Compile(regexPattern)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("Error compiling regex:", err)
|
|
|
- return
|
|
|
+ if cast.ToString(t) == "email" {
|
|
|
+ regexPattern := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`
|
|
|
+ // 编译正则表达式
|
|
|
+ reg, err := regexp.Compile(regexPattern)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("编译正则表达式时出错:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //判断是否为邮箱格式
|
|
|
+ matched := reg.MatchString(cast.ToString(username))
|
|
|
+
|
|
|
+ if !matched {
|
|
|
+ fmt.Println("无效的电子邮件格式.")
|
|
|
+ c.JSON(http.StatusOK, router.CreateResultError(400, "邮箱格式错误!!!"))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else if cast.ToString(t) == "phone" {
|
|
|
+ regexPattern := `^1[3-9]\d{9}$`
|
|
|
+ // 编译正则表达式
|
|
|
+ reg, err := regexp.Compile(regexPattern)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("编译正则表达式时出错:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //判断是否为邮箱格式
|
|
|
+ matched := reg.MatchString(cast.ToString(username))
|
|
|
+
|
|
|
+ if !matched {
|
|
|
+ fmt.Println("无效的手机号格式.")
|
|
|
+ c.JSON(http.StatusOK, router.CreateResultError(400, "手机格式错误!!!"))
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
- matched := reg.MatchString(cast.ToString(username))
|
|
|
|
|
|
- user, err = logins(cast.ToString(username), cast.ToString(password), matched)
|
|
|
+ user, err = logins(cast.ToString(username), cast.ToString(password), cast.ToString(t))
|
|
|
|
|
|
- if err == nil {
|
|
|
+ if err == nil && user.Id != 0 {
|
|
|
+ fmt.Println("用户登录成功!!!")
|
|
|
token, err := share.GenerateToken(cast.ToString(user.Id))
|
|
|
if err == nil {
|
|
|
c.Header("auth-sign", token)
|
|
|
- c.JSON(http.StatusOK, gin.H{
|
|
|
- "code": 200,
|
|
|
- "message": "成功!!!",
|
|
|
- })
|
|
|
+ c.JSON(http.StatusOK, router.CreateResultData(map[string]string{"token": token}))
|
|
|
} else {
|
|
|
- c.JSON(http.StatusOK, gin.H{
|
|
|
- "code": 400,
|
|
|
- "message": "生成token失败!!!",
|
|
|
- })
|
|
|
+ c.JSON(http.StatusOK, router.CreateResultError(400, "生成token失败!!!"))
|
|
|
}
|
|
|
} else {
|
|
|
- c.JSON(http.StatusOK, gin.H{
|
|
|
- "code": 401,
|
|
|
- "message": "用户密码错误!!!",
|
|
|
- })
|
|
|
+ fmt.Println("用户登录失败!!!")
|
|
|
+ c.JSON(http.StatusOK, router.CreateResultError(401, "用户密码错误!!!"))
|
|
|
}
|
|
|
}
|
|
|
+func register(c *gin.Context) {
|
|
|
+ //data := share.GetJsonAnyParam(c)
|
|
|
+ //var user configs.User
|
|
|
+ //var err error
|
|
|
+ //username, _ := data("username")
|
|
|
+ //password, _ := data("password")
|
|
|
+ //// 定义正则表达式
|
|
|
+ //regexPattern := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`
|
|
|
+ //
|
|
|
+ //// 编译正则表达式
|
|
|
+ //reg, err := regexp.Compile(regexPattern)
|
|
|
+ //if err != nil {
|
|
|
+ // fmt.Println("Error compiling regex:", err)
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //判断是否为邮箱格式
|
|
|
+ //matched := reg.MatchString(cast.ToString(username))
|
|
|
+
|
|
|
+ //user, err = logins(cast.ToString(username), cast.ToString(password), matched)
|
|
|
+ //
|
|
|
+ //if err == nil && user.Id != 0 {
|
|
|
+ // fmt.Println("用户登录成功!!!")
|
|
|
+ // token, err := share.GenerateToken(cast.ToString(user.Id))
|
|
|
+ // if err == nil {
|
|
|
+ // c.Header("auth-sign", token)
|
|
|
+ // c.JSON(http.StatusOK, router.CreateResult())
|
|
|
+ // } else {
|
|
|
+ // c.JSON(http.StatusOK, router.CreateResultError(400, "生成token失败!!!"))
|
|
|
+ // }
|
|
|
+ //} else {
|
|
|
+ // fmt.Println("用户登录失败!!!")
|
|
|
+ // c.JSON(http.StatusOK, router.CreateResultError(401, "用户密码错误!!!"))
|
|
|
+ //}
|
|
|
+}
|
|
|
|
|
|
// SendVerificationCode
|
|
|
func SendVerificationCode(c *gin.Context) {
|