package utils import ( "github.com/golang-jwt/jwt/v5" "github.com/pkg/errors" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models" ) type MyClaims struct { models.JccUserInfo jwt.RegisteredClaims // 内嵌标准声明 } // ParseTokenWithoutVerify 解析JWT func ParseTokenWithoutVerify(tokenString string) (*models.JccUserInfo, error) { //忽略token里面的Bearer前缀 if len(tokenString) > 7 && tokenString[:7] == "Bearer " { tokenString = tokenString[7:] } else { return nil, errors.New("token格式错误") } parser := jwt.NewParser() token, _, err := parser.ParseUnverified(tokenString, &MyClaims{}) if err != nil { return nil, err } if claims, ok := token.Claims.(*MyClaims); ok { return &claims.JccUserInfo, nil } return nil, errors.New("token解析失败") }