// doDec decodes in as a JWT. func doDec(signer jwt.Signer, in []byte) ([]byte, error) { var err error // decode token ut := UnstructuredToken{} err = signer.Decode(bytes.TrimSpace(in), &ut) if err != nil { return nil, err } // pretty format output out, err := json.MarshalIndent(&ut, "", " ") if err != nil { return nil, err } return out, nil }
// doEnc encodes in as the payload in a JWT. func doEnc(signer jwt.Signer, in []byte) ([]byte, error) { var err error // make sure its valid json first m := make(map[string]interface{}) // do the initial decode d := json.NewDecoder(bytes.NewBuffer(in)) d.UseNumber() err = d.Decode(&m) if err != nil { return nil, err } // encode claims out, err := signer.Encode(&m) if err != nil { return nil, err } return out, nil }