Files
triggerssmith/internal/jwt/parse.go
2025-12-18 19:58:21 +02:00

29 lines
527 B
Go

package jwt
import (
"fmt"
"github.com/golang-jwt/jwt/v5"
)
func Parse(
tokenStr string,
method jwt.SigningMethod,
key any,
) (jwt.Claims, error) {
t, err := jwt.Parse(tokenStr, func(tok *jwt.Token) (any, error) {
if tok.Method.Alg() != method.Alg() {
return nil, fmt.Errorf("unexpected signing method")
}
return key, nil
})
if err != nil {
return nil, err
}
// check validity twice: invalid token may return nil error
if !t.Valid {
return nil, fmt.Errorf("invalid token")
}
return t.Claims, nil
}