From 91547f3774b538a950f3d8eefef60d5689421d4c Mon Sep 17 00:00:00 2001 From: kevin Date: Thu, 10 Jul 2025 17:05:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=8D=E6=AC=A1=E4=BF=AE=E5=A4=8D=20?= =?UTF-8?q?=E4=B8=BB=E5=8A=A8=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gin_ops/routers/api_users.go | 129 ++++++++++++++++++----------------- 1 file changed, 67 insertions(+), 62 deletions(-) diff --git a/gin_ops/routers/api_users.go b/gin_ops/routers/api_users.go index 272d205..0c368a2 100644 --- a/gin_ops/routers/api_users.go +++ b/gin_ops/routers/api_users.go @@ -68,78 +68,83 @@ func V1_user_api(r *gin.RouterGroup) { var jsonData Login_from data, _ := ctx.Get("data") if err := mapstructure.Decode(data, &jsonData); err == nil { - //转换字段 - newUser := models.User{ - Name: jsonData.Username, - Pass: jsonData.Password, // 实际应替换为哈希值 - // Date 字段无需赋值,数据库会自动填充默认值 - } + if jsonData.Username != "" { + //转换字段 + newUser := models.User{ + Name: jsonData.Username, + Pass: jsonData.Password, // 实际应替换为哈希值 + // Date 字段无需赋值,数据库会自动填充默认值 + } - //对用户的密码进行哈希替换 - newUser.Pass = models.Hash_user_pass(newUser.Pass) + //对用户的密码进行哈希替换 + newUser.Pass = models.Hash_user_pass(newUser.Pass) - var user models.User - user.Name = newUser.Name - if models.DB.Where(user.Name).First(&user).Error == nil { - // 有数据 - //fmt.Println(user) - //fmt.Println(newUser) + var user models.User + user.Name = newUser.Name + if models.DB.Where(&user).First(&user).Error == nil { + // 有数据 + //fmt.Println(user) + //fmt.Println(newUser) - if user.Pass == newUser.Pass { - //成功登录 - //发送cookie - //cookie时间 - var cookie_time = 0 - if jsonData.Is_keep_login { - cookie_time = models.Configs_user.Cookie_timeout + if user.Pass == newUser.Pass { + //成功登录 + //发送cookie + //cookie时间 + var cookie_time = 0 + if jsonData.Is_keep_login { + cookie_time = models.Configs_user.Cookie_timeout + } + + cookie := models.Rand_str_32() //生成32字节cookie + //cookie := "testcookie" + //fmt.Println(cookie) + //将cookie写进数据库 + new_cookie := models.Cookie{} + new_cookie.Domain = models.Configs_wed.Host + new_cookie.Name = "user" + new_cookie.Value = cookie + new_cookie.UserID = user.ID + + //cookie时间 + new_cookie.CreatedAt = time.Now() + new_cookie.UpdatedAt = new_cookie.CreatedAt + //计算cookie失效时间 + new_cookie.ExpiresAt = time.Now().Add(time.Duration(models.Configs_user.Cookie_timeout) * time.Second) //计算过期时间 + new_cookie.SecureFlag = models.Configs_wed.Tls + + //发送到前端 + ctx.SetCookie("user", cookie, cookie_time, "/", models.Configs_wed.Host, models.Configs_wed.Tls, true) + ctx.Set("cookie", new_cookie) + //写到数据库 + models.DB.Create(&new_cookie) // 传入指针 + + //获取用户info + user_info := models.User_info{ + UserID: user.ID, + } + + models.DB.Where(&user_info).First(&user_info) + + red := map[string]interface{}{ + "cookie": new_cookie, + "user_info": user_info, + } + + Return_json(ctx, "api_ok", red) + + } else { + //密码错误 + + Return_json(ctx, "user_password_err", nil) } - cookie := models.Rand_str_32() //生成32字节cookie - //cookie := "testcookie" - //fmt.Println(cookie) - //将cookie写进数据库 - new_cookie := models.Cookie{} - new_cookie.Domain = models.Configs_wed.Host - new_cookie.Name = "user" - new_cookie.Value = cookie - new_cookie.UserID = user.ID - - //cookie时间 - new_cookie.CreatedAt = time.Now() - new_cookie.UpdatedAt = new_cookie.CreatedAt - //计算cookie失效时间 - new_cookie.ExpiresAt = time.Now().Add(time.Duration(models.Configs_user.Cookie_timeout) * time.Second) //计算过期时间 - new_cookie.SecureFlag = models.Configs_wed.Tls - - //发送到前端 - ctx.SetCookie("user", cookie, cookie_time, "/", models.Configs_wed.Host, models.Configs_wed.Tls, true) - ctx.Set("cookie", new_cookie) - //写到数据库 - models.DB.Create(&new_cookie) // 传入指针 - - //获取用户info - user_info := models.User_info{ - UserID: user.ID, - } - - models.DB.Where(user_info.UserID).First(&user_info) - - red := map[string]interface{}{ - "cookie": new_cookie, - "user_info": user_info, - } - - Return_json(ctx, "api_ok", red) - } else { - //密码错误 + //fmt.Println("用户不存在") - Return_json(ctx, "user_password_err", nil) + Return_json(ctx, "user_name_nofind", nil) } } else { - //fmt.Println("用户不存在") - Return_json(ctx, "user_name_nofind", nil) }