add token

This commit is contained in:
2025-10-11 23:45:55 +08:00
parent 524e310dfe
commit 3d71936ecf
5 changed files with 134 additions and 28 deletions

View File

@@ -28,7 +28,7 @@ func New(secret string) {
func GenerateTokenAes(id uint, identity, client, role string, owner any, extend map[string]string) (string, error) {
if !(JwtSecretLen == 16 || JwtSecretLen == 24 || JwtSecretLen == 32) {
return "", errcode.ErrJWTSecretKey
return "", errcode.ErrTokenSecretKey
}
expireTime := time.Now().Add(vars.JwtExpire)
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.ErrJWTJsonEncode
return "", errcode.ErrTokenJsonEncode
}
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.ErrJWTSecretKey
return "", errcode.ErrTokenSecretKey
}
// 获取秘钥块的长度
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.ErrJWTSecretKey
return nil, errcode.ErrTokenSecretKey
}
// 转成字节数组
crytedByte, err := base64.StdEncoding.DecodeString(cryted)
if err != nil {
return nil, errcode.ErrJWTBase64Decode
return nil, errcode.ErrTokenBase64Decode
}
// 分组秘钥
block, err := aes.NewCipher(JwtSecret)
if err != nil {
return nil, errcode.ErrJWTSecretKey
return nil, errcode.ErrTokenSecretKey
}
// 获取秘钥块的长度
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.ErrJWTAuthParseFail
return nil, errcode.ErrTokenAuthParseFail
}
return orig, nil
}
@@ -152,12 +152,12 @@ func ParseTokenAes(token string) (*types.JwtClaims, error) {
var ac *types.JwtClaims
err = json.Unmarshal(data, &ac)
if err != nil {
return nil, errcode.ErrJWTAuthParseFail
return nil, errcode.ErrTokenAuthParseFail
}
expireTime := time.Now().Unix()
if expireTime > ac.ExpiresAt {
return nil, errcode.ErrJWTAuthExpire
return nil, errcode.ErrTokenAuthExpire
}
return ac, nil