package jwt import "github.com/golang-jwt/jwt/v5" type HMACSigner struct { secret []byte } func NewHMACSigner(secret []byte) *HMACSigner { return &HMACSigner{secret: secret} } func (s *HMACSigner) Sign(claims jwt.Claims) (string, error) { t := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) return t.SignedString(s.secret) } func (s *HMACSigner) Verify(tokenStr string) (jwt.Claims, error) { return Parse(tokenStr, jwt.SigningMethodHS256, s.secret) }