我正在尝试使用私有应用程序使用 Xero API 解决身份验证。我相信 OpenSSL 的输入格式正确,例如字符串(某些值更改为*):
GET&https%3A%2F%2Fapi.xero.com%2Fapi.xro%2F2.0%2FContacts&oauth_consumer_key%3D *%26oauth_nonce%3D45016%26oauth_signature_method%3DRSA-SHA1%26oauth_timestamp%3DD816816021%26 .0
Xero API端点返回:'oauth_problem=signature_invalid & oauth_problem_advice=Failed to validate signature'
,因此被认为是 OpenSSL 的问题,在cmd行中使用以下参数进行了调用:
dgst -sha1 -hex -sign privatekey.pem -out C:\ Temp \ Xero \ signature.txt c:\ temp \ xero \ OpenSSLSignInput.txt
(然后将签名进行base64编码,然后再添加到oauth_signature中。)
除了我发现在OpenSSL参数中使用-binary的参考(并且不使用-hex开关),但是当涉及到从signature.txt读取结果时-hex是唯一不会触发错误的格式)
如果有人可以澄清 OpenSSL 应该使用什么参数来获得Xero API私有应用程序正确的签名(和/或是否有人可以发现我的输入字符串有任何问题),将不胜感激。