Files
commerce/util/jwt/peek.go
zeekay 1943f1c093 Hanzo Commerce
Multi-tenant commerce and billing: orders, subscriptions, invoices, plans,
usage metering and a credit ledger. One Go binary. MIT OR Apache-2.0.

Claude-Session: https://claude.ai/code/session_01SAtaDFm8VDiWrhYHNNtxMw
2026-09-23 21:52:16 -07:00

37 lines
767 B
Go

package jwt
import (
"encoding/json"
"strings"
"github.com/golang-jwt/jwt"
"github.com/hanzoai/commerce/log"
)
// Like Decode but no validation, don't forget to actually validate using decode
func Peek(tokenString string, claims Claimable) error {
// Make Sure Claims is a struct pointer
parts := strings.Split(tokenString, ".")
if len(parts) != 3 {
log.Error("Invalid Segments")
return InvalidNumberOfSegments
}
// Parse Claims
var (
claimBytes []byte
err error
)
if claimBytes, err = jwt.DecodeSegment(parts[1]); err != nil {
log.Error("Malformed Token %v", err)
return MalformedToken
}
if err := json.Unmarshal(claimBytes, claims); err != nil {
log.Error("Malformed Token %v", err)
return MalformedToken
}
return nil
}