code: func Decode(token string, key interface{}) (string, map[string]interface{}, error) {
  
  	payload, headers, err := DecodeBytes(token, key)
  
  	if err != nil {
  		return "", nil, err
  	}
  
  	return string(payload), headers, nil
  }
docs: // Decode verifies, decrypts and decompresses given JWT token using management key.
  // Management key is of different type for different key management or signing algorithms, see specific alg implementation documentation.
  //
  // Returns decoded payload as a string, headers and not nil error if something went wrong.