mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 00:10:25 +08:00 
			
		
		
		
	refactor: 后端validator校验错误转译
This commit is contained in:
		@@ -13,9 +13,18 @@ import (
 | 
			
		||||
	"github.com/golang-jwt/jwt/v5"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// 初始化jwt key与expire time等
 | 
			
		||||
func InitTokenConfig() {
 | 
			
		||||
	JwtKey = config.Conf.Jwt.Key
 | 
			
		||||
	ExpTime = config.Conf.Jwt.ExpireTime
 | 
			
		||||
	if ExpTime == 0 {
 | 
			
		||||
		JwtKey = config.Conf.Jwt.Key
 | 
			
		||||
		ExpTime = config.Conf.Jwt.ExpireTime
 | 
			
		||||
 | 
			
		||||
		// 如果配置文件中的jwt key为空,则随机生成字符串
 | 
			
		||||
		if JwtKey == "" {
 | 
			
		||||
			JwtKey = stringx.Rand(32)
 | 
			
		||||
			global.Log.Infof("config.yml未配置jwt.key, 随机生成key为: %s", JwtKey)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -25,6 +34,8 @@ var (
 | 
			
		||||
 | 
			
		||||
// 创建用户token
 | 
			
		||||
func CreateToken(userId uint64, username string) string {
 | 
			
		||||
	InitTokenConfig()
 | 
			
		||||
 | 
			
		||||
	// 带权限创建令牌
 | 
			
		||||
	// 设置有效期,过期需要重新登录获取token
 | 
			
		||||
	token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
 | 
			
		||||
@@ -33,14 +44,9 @@ func CreateToken(userId uint64, username string) string {
 | 
			
		||||
		"exp":      time.Now().Add(time.Minute * time.Duration(ExpTime)).Unix(),
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	// 如果配置文件中的jwt key为空,则随机生成字符串
 | 
			
		||||
	if JwtKey == "" {
 | 
			
		||||
		JwtKey = stringx.Rand(32)
 | 
			
		||||
		global.Log.Infof("config.yml未配置jwt.key, 随机生成key为: %s", JwtKey)
 | 
			
		||||
	}
 | 
			
		||||
	// 使用自定义字符串加密 and get the complete encoded token as a string
 | 
			
		||||
	tokenString, err := token.SignedString([]byte(JwtKey))
 | 
			
		||||
	biz.ErrIsNil(err, "token创建失败")
 | 
			
		||||
	biz.ErrIsNilAppendErr(err, "token创建失败: %s")
 | 
			
		||||
	return tokenString
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -49,6 +55,8 @@ func ParseToken(tokenStr string) (*model.LoginAccount, error) {
 | 
			
		||||
	if tokenStr == "" {
 | 
			
		||||
		return nil, errors.New("token error")
 | 
			
		||||
	}
 | 
			
		||||
	InitTokenConfig()
 | 
			
		||||
 | 
			
		||||
	// Parse token
 | 
			
		||||
	token, err := jwt.Parse(tokenStr, func(token *jwt.Token) (any, error) {
 | 
			
		||||
		return []byte(JwtKey), nil
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user