2012-06-18 2 views
2

Через API Magento OAuth мне удалось получить access_token и access_token_secret. Для их вызова требуется действительная подпись. Поскольку я использую библиотеку plainOAuth, и я могу подписать запрос авторизации, я подозреваю, что библиотека не является проблемой.Недопустимая подпись Magento REST API

Выпуск: После Im делая 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. Я только что опубликовал отчет об ошибке: 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 в 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

Смежные вопросы