This commit is contained in:
2025-02-07 20:33:27 +08:00
parent 76a4b67269
commit e89e1a372a
28 changed files with 276 additions and 1691 deletions

View File

@@ -23,12 +23,12 @@ var (
func New(token string) {
JwtSecret = []byte(token)
JwtSecretLen = len(env.MeshEnv.JwtSecretKey)
JwtSecretLen = len(env.Runtime.JwtSecretKey)
}
func GenerateTokenAes(id uint, identity, client, role string, owner any, extend map[string]string) (string, error) {
if (JwtSecretLen == 16 || JwtSecretLen == 24 || JwtSecretLen == 32) == false {
return "", errcode.ErrAuthSecret
return "", errcode.ErrJWTSecretKey
}
expireTime := time.Now().Add(vars.JwtExpireDay)
claims := types.JwtClaims{
@@ -43,7 +43,7 @@ func GenerateTokenAes(id uint, identity, client, role string, owner any, extend
byte, err := json.Marshal(claims)
if err != nil {
return "", errcode.ErrJsonEncode
return "", errcode.ErrJWTJsonEncode
}
token, err := AesEncryptCBC(byte)
@@ -59,7 +59,7 @@ func AesEncryptCBC(plan []byte) (string, error) {
// NewCipher该函数限制了输入k的长度必须为16, 24或者32
block, err := aes.NewCipher(JwtSecret)
if err != nil {
return "", errcode.ErrAuthSecret
return "", errcode.ErrJWTSecretKey
}
// 获取秘钥块的长度
blockSize := block.BlockSize()
@@ -76,17 +76,17 @@ func AesEncryptCBC(plan []byte) (string, error) {
func AesDecryptCBC(cryted string) (b []byte, err error) {
if (JwtSecretLen == 16 || JwtSecretLen == 24 || JwtSecretLen == 32) == false {
return nil, errcode.ErrAuthSecret
return nil, errcode.ErrJWTSecretKey
}
// 转成字节数组
crytedByte, err := base64.StdEncoding.DecodeString(cryted)
if err != nil {
return nil, errcode.ErrBase64Decode
return nil, errcode.ErrJWTBase64Decode
}
// 分组秘钥
block, err := aes.NewCipher(JwtSecret)
if err != nil {
return nil, errcode.ErrAuthSecret
return nil, errcode.ErrJWTSecretKey
}
// 获取秘钥块的长度
blockSize := block.BlockSize()
@@ -99,7 +99,7 @@ func AesDecryptCBC(cryted string) (b []byte, err error) {
// 去补全码
orig = PKCS7UnPadding(orig, blockSize)
if orig == nil {
return nil, errcode.ErrAuthParseFail
return nil, errcode.ErrJWTAuthParseFail
}
return orig, nil
}
@@ -142,12 +142,12 @@ func ParseTokenAes(token string) (*types.JwtClaims, error) {
var ac *types.JwtClaims
err = json.Unmarshal(data, &ac)
if err != nil {
return nil, errcode.ErrAuthParseFail
return nil, errcode.ErrJWTAuthParseFail
}
expireTime := time.Now().Unix()
if expireTime > ac.ExpiresAt {
return nil, errcode.ErrAuthExpire
return nil, errcode.ErrJWTAuthExpire
}
return ac, nil