|
|
|
@ -2,6 +2,7 @@ package jwt |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"encoding/json" |
|
|
|
|
"git.diulo.com/mogfee/kit/errors" |
|
|
|
|
"git.diulo.com/mogfee/kit/internal/xuuid" |
|
|
|
|
"github.com/golang-jwt/jwt/v5" |
|
|
|
|
"time" |
|
|
|
@ -58,16 +59,16 @@ func Parse(key string, tokenStr string) (*UserInfo, error) { |
|
|
|
|
} |
|
|
|
|
str, err := Decrypt(tokenStr, []byte(key), key) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, errorx.Unauthorized("TOKEN_ERROR", err.Error()) |
|
|
|
|
return nil, errors.Unauthorized("TOKEN_ERROR", err.Error()) |
|
|
|
|
} |
|
|
|
|
token, err := jwt.Parse(str, func(token *jwt.Token) (interface{}, error) { |
|
|
|
|
return []byte(key), nil |
|
|
|
|
}) |
|
|
|
|
if err != nil { |
|
|
|
|
if errorx.Is(err, jwt.ErrTokenExpired) { |
|
|
|
|
return nil, errorx.Unauthorized("TOKEN_EXPIRED", "") |
|
|
|
|
if errors.Is(err, jwt.ErrTokenExpired) { |
|
|
|
|
return nil, errors.Unauthorized("TOKEN_EXPIRED", "") |
|
|
|
|
} |
|
|
|
|
return nil, errorx.Unauthorized("TOKEN_ERROR", err.Error()) |
|
|
|
|
return nil, errors.Unauthorized("TOKEN_ERROR", err.Error()) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if token.Valid { |
|
|
|
@ -76,11 +77,11 @@ func Parse(key string, tokenStr string) (*UserInfo, error) { |
|
|
|
|
}{} |
|
|
|
|
b, _ := json.Marshal(token.Claims) |
|
|
|
|
if err = json.Unmarshal(b, &row); err != nil { |
|
|
|
|
return nil, errorx.Unauthorized("TOKEN_ERROR", err.Error()) |
|
|
|
|
return nil, errors.Unauthorized("TOKEN_ERROR", err.Error()) |
|
|
|
|
} |
|
|
|
|
return row.Info, nil |
|
|
|
|
} else if errorx.Is(err, jwt.ErrTokenExpired) || errorx.Is(err, jwt.ErrTokenNotValidYet) { |
|
|
|
|
return nil, errorx.Unauthorized("TOKEN_EXPIRED", "") |
|
|
|
|
} else if errors.Is(err, jwt.ErrTokenExpired) || errors.Is(err, jwt.ErrTokenNotValidYet) { |
|
|
|
|
return nil, errors.Unauthorized("TOKEN_EXPIRED", "") |
|
|
|
|
} |
|
|
|
|
return nil, errorx.Unauthorized("TOKEN_ERROR", "") |
|
|
|
|
return nil, errors.Unauthorized("TOKEN_ERROR", "") |
|
|
|
|
} |
|
|
|
|