1
This commit is contained in:
		
							
								
								
									
										77
									
								
								common/service/common/base.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								common/service/common/base.go
									
									
									
									
									
										Normal 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-Android,2-IOS,3-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
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user