再次修复 主动判断是否为空值
This commit is contained in:
@@ -68,78 +68,83 @@ func V1_user_api(r *gin.RouterGroup) {
|
|||||||
var jsonData Login_from
|
var jsonData Login_from
|
||||||
data, _ := ctx.Get("data")
|
data, _ := ctx.Get("data")
|
||||||
if err := mapstructure.Decode(data, &jsonData); err == nil {
|
if err := mapstructure.Decode(data, &jsonData); err == nil {
|
||||||
//转换字段
|
if jsonData.Username != "" {
|
||||||
newUser := models.User{
|
//转换字段
|
||||||
Name: jsonData.Username,
|
newUser := models.User{
|
||||||
Pass: jsonData.Password, // 实际应替换为哈希值
|
Name: jsonData.Username,
|
||||||
// Date 字段无需赋值,数据库会自动填充默认值
|
Pass: jsonData.Password, // 实际应替换为哈希值
|
||||||
}
|
// Date 字段无需赋值,数据库会自动填充默认值
|
||||||
|
}
|
||||||
|
|
||||||
//对用户的密码进行哈希替换
|
//对用户的密码进行哈希替换
|
||||||
newUser.Pass = models.Hash_user_pass(newUser.Pass)
|
newUser.Pass = models.Hash_user_pass(newUser.Pass)
|
||||||
|
|
||||||
var user models.User
|
var user models.User
|
||||||
user.Name = newUser.Name
|
user.Name = newUser.Name
|
||||||
if models.DB.Where(user.Name).First(&user).Error == nil {
|
if models.DB.Where(&user).First(&user).Error == nil {
|
||||||
// 有数据
|
// 有数据
|
||||||
//fmt.Println(user)
|
//fmt.Println(user)
|
||||||
//fmt.Println(newUser)
|
//fmt.Println(newUser)
|
||||||
|
|
||||||
if user.Pass == newUser.Pass {
|
if user.Pass == newUser.Pass {
|
||||||
//成功登录
|
//成功登录
|
||||||
//发送cookie
|
//发送cookie
|
||||||
//cookie时间
|
//cookie时间
|
||||||
var cookie_time = 0
|
var cookie_time = 0
|
||||||
if jsonData.Is_keep_login {
|
if jsonData.Is_keep_login {
|
||||||
cookie_time = models.Configs_user.Cookie_timeout
|
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 {
|
} else {
|
||||||
//密码错误
|
//fmt.Println("用户不存在")
|
||||||
|
|
||||||
Return_json(ctx, "user_password_err", nil)
|
Return_json(ctx, "user_name_nofind", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//fmt.Println("用户不存在")
|
|
||||||
|
|
||||||
Return_json(ctx, "user_name_nofind", nil)
|
Return_json(ctx, "user_name_nofind", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user