This commit is contained in:
2025-07-03 20:34:31 +08:00
parent 2fce6350c6
commit c67877e811
10 changed files with 163 additions and 69 deletions
+10 -10
View File
@@ -47,7 +47,7 @@ func V1_user_api(r *gin.RouterGroup) {
//创建info
var user_info models.User_info
user_info.AvatarPath = models.User_configs["def_avatar_path"].(string)
user_info.AvatarPath = models.Configs_user.Avatar_path
user_info.UserID = newUser.ID
models.DB.Create(&user_info) // 传入指针
@@ -91,7 +91,7 @@ func V1_user_api(r *gin.RouterGroup) {
//cookie时间
var cookie_time = 0
if jsonData.Is_keep_login {
cookie_time = models.User_configs["cookie_timeout"].(int)
cookie_time = models.Configs_user.Cookie_timeout
}
cookie := models.Rand_str_32() //生成32字节cookie
@@ -99,7 +99,7 @@ func V1_user_api(r *gin.RouterGroup) {
//fmt.Println(cookie)
//将cookie写进数据库
new_cookie := models.Cookie{}
new_cookie.Domain = models.Wed_configs.Host
new_cookie.Domain = models.Configs_wed.Host
new_cookie.Name = "user"
new_cookie.Value = cookie
new_cookie.UserID = user.ID
@@ -108,11 +108,11 @@ func V1_user_api(r *gin.RouterGroup) {
new_cookie.CreatedAt = time.Now()
new_cookie.UpdatedAt = new_cookie.CreatedAt
//计算cookie失效时间
new_cookie.ExpiresAt = time.Now().Add(time.Duration(models.User_configs["cookie_timeout"].(int)) * time.Second) //计算过期时间
new_cookie.SecureFlag = models.Wed_configs.Tls
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.Wed_configs.Host, models.Wed_configs.Tls, true)
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) // 传入指针
@@ -167,7 +167,7 @@ func V1_user_api(r *gin.RouterGroup) {
if err := mapstructure.Decode(cookie_any, &cookie); err == nil {
models.DB.Where(&cookie).Delete(&cookie)
//删除前端cookie
ctx.SetCookie("user", "", -1, "/", models.Wed_configs.Host, models.Wed_configs.Tls, true)
ctx.SetCookie("user", "", -1, "/", models.Configs_wed.Host, models.Configs_wed.Tls, true)
ctx.Set("cookie", nil)
Return_json(ctx, "api_ok", nil)
@@ -178,7 +178,7 @@ func V1_user_api(r *gin.RouterGroup) {
}
} else {
ctx.SetCookie("user", "", -1, "/", models.Wed_configs.Host, models.Wed_configs.Tls, true)
ctx.SetCookie("user", "", -1, "/", models.Configs_wed.Host, models.Configs_wed.Tls, true)
Return_json(ctx, "user_no_sign", nil)
}
@@ -211,10 +211,10 @@ func V1_user_api(r *gin.RouterGroup) {
}
//需要验证传入数据的合法性 例如头像url是否站内的
if strings.HasPrefix(new_user_info.AvatarPath, models.User_configs["def_avatar_ginrouter_path"].(string)) {
if strings.HasPrefix(new_user_info.AvatarPath, models.Configs_user.Avatar_ginrouter_path) {
} else {
new_user_info.AvatarPath = models.User_configs["def_avatar_path"].(string)
new_user_info.AvatarPath = models.Configs_user.Avatar_path
}
//fmt.Printf("%%#v: %#v\n", new_user_info)
+34 -11
View File
@@ -3,13 +3,17 @@ package routers
//文件路由
import (
"fmt"
"github.com/gin-gonic/gin"
)
func Router_file(r *gin.RouterGroup) {
//无需权限,可以直接下载的接口
r.GET("/download/:id", func(ctx *gin.Context) {
})
//先在中间件判断有没有登录
r.Use(func(ctx *gin.Context) {
cookie_value := ctx.PostForm("cookie")
//fmt.Println(cookie_value)
@@ -26,15 +30,34 @@ func Router_file(r *gin.RouterGroup) {
}
})
r.POST("/upload", func(ctx *gin.Context) {
file, err := ctx.FormFile("file")
if err == nil {
fmt.Println("ok")
} else {
fmt.Println("err:", err)
fmt.Println("file:", file)
}
Return_json(ctx, "api_ok", nil)
upload := r.Group("/upload") //定义上传组
//4大媒体上传接口,严格判断文件类型,可以直接被前端引用
upload.POST("/image", func(ctx *gin.Context) {
})
upload.POST("/video", func(ctx *gin.Context) {
})
upload.POST("/music", func(ctx *gin.Context) {
})
upload.POST("/pdf", func(ctx *gin.Context) {
})
//其他文件,只能通过用户报告的类型定义,不能直接被前端引用
upload.POST("/other", func(ctx *gin.Context) {
})
// r.POST("/upload", func(ctx *gin.Context) {
// file, err := ctx.FormFile("file")
// if err == nil {
// fmt.Println("ok")
// } else {
// fmt.Println("err:", err)
// fmt.Println("file:", file)
// }
// Return_json(ctx, "api_ok", nil)
// })
}
+6 -6
View File
@@ -27,10 +27,10 @@ func Use_login_from_cookie(ctx *gin.Context) {
//每次调用都更新cookie的最新状态 ,用于计算在线
var cookie_up models.Cookie
cookie_up.UpdatedAt = time.Now()
cookie_up.ExpiresAt = time.Now().Add(time.Duration(models.User_configs["cookie_timeout"].(int)) * time.Second) //计算过期时间
cookie_up.ExpiresAt = time.Now().Add(time.Duration(models.Configs_user.Cookie_timeout) * time.Second) //计算过期时间
models.DB.Model(&models.Cookie{}).Where(&cookie).Updates(&cookie_up)
//更新前端cookie
ctx.SetCookie("user", cookie.Value, models.User_configs["cookie_timeout"].(int), "/", models.Wed_configs.Host, models.Wed_configs.Tls, true)
ctx.SetCookie("user", cookie.Value, models.Configs_user.Cookie_timeout, "/", models.Configs_wed.Host, models.Configs_wed.Tls, true)
cookie.UpdatedAt = cookie_up.UpdatedAt
cookie.ExpiresAt = cookie_up.ExpiresAt
ctx.Set("cookie", cookie)
@@ -52,7 +52,7 @@ func Use_login_from_cookie(ctx *gin.Context) {
} else {
// 无数据
//创建一个默认info
user_info.AvatarPath = models.User_configs["def_avatar_path"].(string)
user_info.AvatarPath = models.Configs_user.Avatar_path
user_info.UserID = cookie.UserID
models.DB.Create(&user_info) // 传入指针
}
@@ -63,7 +63,7 @@ func Use_login_from_cookie(ctx *gin.Context) {
} else {
//找不到登录权限?? 可能被封号?
//删除前端cookie
ctx.SetCookie("user", "", -1, "/", models.Wed_configs.Host, models.Wed_configs.Tls, true)
ctx.SetCookie("user", "", -1, "/", models.Configs_wed.Host, models.Configs_wed.Tls, true)
cookie.Value = ""
cookie.ExpiresAt = time.Now()
ctx.Set("cookie", cookie)
@@ -75,7 +75,7 @@ func Use_login_from_cookie(ctx *gin.Context) {
//删除数据库的cookie
models.DB.Delete(&cookie)
//删除前端cookie
ctx.SetCookie("user", "", -1, "/", models.Wed_configs.Host, models.Wed_configs.Tls, true)
ctx.SetCookie("user", "", -1, "/", models.Configs_wed.Host, models.Configs_wed.Tls, true)
cookie.Value = ""
cookie.ExpiresAt = time.Now()
ctx.Set("cookie", cookie)
@@ -84,7 +84,7 @@ func Use_login_from_cookie(ctx *gin.Context) {
} else {
//找不到cookie,未登录
//删除前端cookie
ctx.SetCookie("user", "", -1, "/", models.Wed_configs.Host, models.Wed_configs.Tls, true)
ctx.SetCookie("user", "", -1, "/", models.Configs_wed.Host, models.Configs_wed.Tls, true)
cookie.Value = ""
cookie.ExpiresAt = time.Now()
ctx.Set("cookie", cookie)