You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

jwtUtil.go 799 B

1234567891011121314151617181920212223242526272829303132
  1. package utils
  2. import (
  3. "github.com/golang-jwt/jwt/v5"
  4. "github.com/pkg/errors"
  5. "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
  6. )
  7. type MyClaims struct {
  8. models.JccUserInfo
  9. jwt.RegisteredClaims // 内嵌标准声明
  10. }
  11. // ParseTokenWithoutVerify 解析JWT
  12. func ParseTokenWithoutVerify(tokenString string) (*models.JccUserInfo, error) {
  13. //忽略token里面的Bearer前缀
  14. if len(tokenString) > 7 && tokenString[:7] == "Bearer " {
  15. tokenString = tokenString[7:]
  16. } else {
  17. return nil, errors.New("token格式错误")
  18. }
  19. parser := jwt.NewParser()
  20. token, _, err := parser.ParseUnverified(tokenString, &MyClaims{})
  21. if err != nil {
  22. return nil, err
  23. }
  24. if claims, ok := token.Claims.(*MyClaims); ok {
  25. return &claims.JccUserInfo, nil
  26. }
  27. return nil, errors.New("token解析失败")
  28. }

PCM is positioned as Software stack over Cloud, aiming to build the standards and ecology of heterogeneous cloud collaboration for JCC in a non intrusive and autonomous peer-to-peer manner.