2012-06-18 44 views
2

通過Magento OAuth API,我設法獲得了access_token和access_token_secret。 獲取這些信息的呼叫需要有效的簽名。由於我使用的是plainOAuth庫,我能夠簽署授權請求有效,我懷疑這個庫不是問題。Magento REST API簽名無效

問題: 一旦林做一個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" 

回答

1

我認爲Magento Core內有一個bug。我剛剛在這裏提交了一個錯誤報告:http://www.magentocommerce.com/bug-tracking/issue?issue=14307(不幸的是,您必須登錄magento站點才能看到它)。

基本上它們包括客戶簽名計算服務器簽名,然後比較它們總是失敗。

請讓我知道你是如何解決這個問題的?

0

我有這個問題,我做了這些步驟後工作版本。但在此之前,例如請求令牌簽名

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 
  • 拿一張紙條,該方法和URL等PARAMS之間,他們利用&沒有申請進行urlencode。我認爲這是用於分裂參數的參數。
  • 在請求令牌期間,我們不應該將oauth_token放入參數中。
  • 所有參數都必須按字母順序進行排序和人物必須像進行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