2

Magento OAuth API を介して、access_token と access_token_secret を取得できました。これらを取得するための呼び出しには、有効な署名が必要です。私はplainOAuthライブラリを使用していて、有効な承認リクエストに署名できるので、ライブラリが問題ではないと思います。

問題: トークンとコンシューマー トークンを使用して REST 呼び出し "test.magentohost.com/api/rest/products" を実行すると、無効な署名が返されます。sig は、ライブラリを介してコンシューマー/アクセス トークン シークレットを使用して署名され、(私が思うに) すべてのパラメーターはヘッダーにあります。誰かが私のヘッダーの間違いに気付いてくれることを願っています。

これは私の「Authorization」ヘッダーです。

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"
4

2 に答える 2

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
  • メソッドと url およびその他のパラメーターの間で、urlencode を適用せずに & を使用することに注意してください。これは、params で引数を分割するためのものだと思います。
  • リクエスト トークンの間、oauth_token を params に入れるべきではありません。
  • すべてのパラメーターはアルファベット順に並べ替える必要があり、文字は 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

于 2016-11-20T18:08:32.377 に答える
1

Magento Core 内にバグがあると思います。ここにバグレポートを提出しました:http://www.magentocommerce.com/bug-tracking/issue?issue=14307(残念ながら、それを見るにはmagentoサイトにログインする必要があります).

基本的に、サーバー署名の計算にクライアント署名を含め、両方を比較しますが、常に失敗します。

これをどのように解決したか教えてください。

于 2012-10-05T12:27:09.607 に答える