pcm-coordinator/pkg/utils/jwtUtil.go

33 lines
799 B
Go

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解析失败")
}