package utils import ( "encoding/json" "fmt" "github.com/golang-jwt/jwt/v5" ) type WbAuthData struct { Token string `json:"token"` } func NewWbAuthData(token string) WbAuthData { return WbAuthData{ Token: token, } } func DecodeWildberriesJwt(token []byte) (WbAuthData, jwt.MapClaims, error) { var authData WbAuthData err := json.Unmarshal(token, &authData) if err != nil { return authData, nil, fmt.Errorf("failed to unmarshal JWT: %w", err) } claims := jwt.MapClaims{} _, _, err = jwt.NewParser().ParseUnverified(authData.Token, claims) if err != nil { return authData, nil, fmt.Errorf("invalid JWT: %w", err) } return authData, claims, nil }