code: func (t *Token) SigningString() (string, error) {
  	var err error
  	parts := make([]string, 2)
  	for i, _ := range parts {
  		var jsonValue []byte
  		if i == 0 {
  			if jsonValue, err = json.Marshal(t.Header); err != nil {
  				return "", err
  			}
  		} else {
  			if jsonValue, err = json.Marshal(t.Claims); err != nil {
  				return "", err
  			}
  		}
  
  		parts[i] = EncodeSegment(jsonValue)
  	}
  	return strings.Join(parts, "."), nil
  }
docs: // Generate the signing string.  This is the
  // most expensive part of the whole deal.  Unless you
  // need this for something special, just go straight for
  // the SignedString.