package utils import ( "encoding/json" "gopkg.in/square/go-jose.v2" ) func Sign(object interface{}, signer jose.Signer) (string, error) { payload, err := json.Marshal(object) if err != nil { return "", err } return SignPayload(payload, signer) } func SignPayload(payload []byte, signer jose.Signer) (string, error) { result, err := signer.Sign(payload) if err != nil { return "", err } return result.CompactSerialize() }