ParseJWT verifies and parses JWT and returns its claims.
(token string, verificationKey string)
| 26 | |
| 27 | // ParseJWT verifies and parses JWT and returns its claims. |
| 28 | func ParseJWT(token string, verificationKey string) (jwt.MapClaims, error) { |
| 29 | parser := jwt.NewParser(jwt.WithValidMethods([]string{"HS256"})) |
| 30 | |
| 31 | parsedToken, err := parser.Parse(token, func(t *jwt.Token) (any, error) { |
| 32 | return []byte(verificationKey), nil |
| 33 | }) |
| 34 | if err != nil { |
| 35 | return nil, err |
| 36 | } |
| 37 | |
| 38 | if claims, ok := parsedToken.Claims.(jwt.MapClaims); ok && parsedToken.Valid { |
| 39 | return claims, nil |
| 40 | } |
| 41 | |
| 42 | return nil, errors.New("unable to parse token") |
| 43 | } |
| 44 | |
| 45 | // NewJWT generates and returns new HS256 signed JWT. |
| 46 | func NewJWT(payload jwt.MapClaims, signingKey string, duration time.Duration) (string, error) { |
searching dependent graphs…