通过Magento OAuth API,我设法获得了access_token和access_token_secret。 获取这些的要求需要有效的签名。由于我正在使用plainOAuth库并且我能够签署授权请求有效,我怀疑库不是问题。
问题: 一旦我使用令牌和消费者令牌进行REST调用“test.magentohost.com/api/rest/products”,我得到响应无效签名。通过库使用消费者/访问令牌秘密签署sig,并且(我认为)所有参数都在标题中。 我希望任何人都可以在我的标题中看到错误,这让我疯狂!
这是我的“授权”标题。
oauth_realm="",
oauth_timestamp="1340011522",
oauth_nonce="ff5c167677069d9770d5cfc1dba12e0fc1d924f9",
oauth_signature_method="HMAC-SHA1",
oauth_consumer_key="ic88q1nq0iitd9tmowz6bs3dzg2d07ng",
oauth_version="1.0",
oauth_token="uye05e0pb0f8dap1ovglecxoq6ziee35",
oauth_signature="G%2Frl7S%2Bw57pjCk8xk1DMpOLkjxI%3D"
答案 0 :(得分:1)
我认为Magento Core中存在一个错误。我刚刚在这里提交了一个错误报告:http://www.magentocommerce.com/bug-tracking/issue?issue=14307(不幸的是你必须登录magento网站才能看到它)。
基本上,它们在计算服务器签名时包含客户端签名,然后比较总是失败的两者。
请告诉我你是如何解决这个问题的?
答案 1 :(得分:1)
我有这个问题,在完成这些步骤后我得到了工作版本。但之前,示例请求令牌签名
POST&http%3A%2F%2Fmagento.test.com%2Foauth%2Ftoken%2Frequest%2F&oauth_consumer_key%3Duaa3romggcur5yrjjm85ydiunfxfyuxx%26oauth_nonce%3D1479663271%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1479663271%26oauth_version%3D1.0
所有参数必须按字母顺序排序,并且必须使用urlencode等函数对字符进行转义:
的http%3A%2F%2Fmagento.test.com%2Foauth%2Ftoken%2Frequest%2F
http://magento.test.com/oauth/token/request
oauth_consumer_key%3Duaa3romggcur5yrjjm85ydiunfxfyuxx%26oauth_nonce%3D1479663271%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1479663271%26oauth_version%3D1.0
oauth_consumer_key = uaa3romggcur5yrjjm85ydiunfxfyuxx&安培; oauth_nonce = 1479663271&安培; oauth_signature_method = HMAC-SHA1&安培; oauth_timestamp = 1479663271&安培; oauth_version = 1.0