This commit is contained in:
2025-02-06 11:14:33 +08:00
commit 07847a2d9e
535 changed files with 65131 additions and 0 deletions

View File

@ -0,0 +1,77 @@
package common
import (
"go-admin/pkg/cryptohelper/jwthelper"
"strconv"
"github.com/gin-gonic/gin"
)
// 通过原生 token 获取登录用户 ID判断是否登录。
// 注:该方法未经过登录中间件,从原始 token 中解析出登录信息,而非从已解析的 token 串中获取登录信息。
func GetUserIdByToken(ctx *gin.Context) int {
token := ctx.GetHeader("token")
if len(token) == 0 {
return 0
}
// 解析token
flag, rew := jwthelper.MidValidToken(token, 3)
if flag < 0 || len(rew) == 0 {
return 0
}
loginUser := jwthelper.GetLoginUserJwt(rew)
return loginUser.UserID
}
// 获取操作系统1-Android2-IOS3-PC
func GetOS(ctx *gin.Context) int {
osStr := ctx.GetHeader("os") // 获取请求头中的"os"字段
osInt, err := strconv.Atoi(osStr) // 转换为整数
if err != nil {
return 0 // 如果转换失败返回0
}
return osInt
}
// 获取 设备ID
func GetDeviceID(ctx *gin.Context) string {
device := ctx.GetHeader("device_id") // 获取请求头中的"os"字段
return device
}
// 获取 language默认语言zh-CN
// 英语 en
// 日本语 jp
// 韩语 kr
// 马来西亚语 my
// 泰国语 th
// 越南语 vn
// 简体中文 zh-CN
// 繁体中文 zh-HK
func GetLanguage(ctx *gin.Context) string {
lang := ""
val, exits := ctx.Get("language")
if !exits {
lang = "zh-CN"
} else {
lang = val.(string)
}
return lang
}
// 根据token获取当前userid
func GetUserId(ctx *gin.Context) int {
token := ctx.GetHeader("ParseToken") // .Request.Header.Peek("token")
// loghelper.Debug("token: " + token)
if len(token) == 0 {
return 0
}
tokenItem := jwthelper.GetLoginUserJwt(token)
return tokenItem.UserID
}