ParseToken.go 468 B

1234567891011121314151617181920212223242526
  1. package tool
  2. import (
  3. "crypto/ecdsa"
  4. "errors"
  5. "github.com/golang-jwt/jwt/v5"
  6. )
  7. // ParseToken ..
  8. func ParseToken(tokenStr string, publicKey *ecdsa.PublicKey) (claims jwt.MapClaims, err error) {
  9. jwtToken, err := jwt.Parse(tokenStr, func(token *jwt.Token) (interface{}, error) {
  10. return publicKey, nil
  11. })
  12. if err != nil {
  13. return nil, err
  14. }
  15. claims, ok := jwtToken.Claims.(jwt.MapClaims)
  16. if !ok {
  17. return nil, errors.New("claims parse fail")
  18. }
  19. return
  20. }