PrestaShop веб-службы API требует проверки подлинности

PrestaShop веб-службы API требует проверки подлинности

26.02.2015 09:15:27 Просмотров 44 Источник

У меня возникла эта проблема я включил веб-сервис из prestashop, и я могу получить к нему доступ, если я напишу URL-адрес напрямую, передавая параметр из метода post http://underwearstudio.mx/pruebas/api?&ws_key="системы MyKey".

Но если я пытаюсь получить доступ, не передавая ws_key в качестве параметра, он продолжает просить меня аутентифицировать.

Из того, что я читал, когда запрашивается аутентификация, вам нужно использовать ключ API в качестве имени пользователя и оставить пустой пароль, но он просто продолжает запрашивать аутентификацию.

Что я могу сделать?

Я пытался следовать этому учебнику.( http://doc.prestashop.com/display/PS15/Chapter+2+-+Discovery+-+Testing+access+to+the+web+service+with+the+browser)

Любая помощь будет очень признательна

У вопроса есть решение - Посмотреть?

Ответы - PrestaShop веб-службы API требует проверки подлинности / Prestashop Web Service API keeps asking for authentication

Robbie Averill

26.02.2015 10:51:46

Из их документации похоже, что вы должны иметь возможность поместить свой ключ API в URL-адрес вместо того, где имя пользователя будет идти в обычном HTTP-запросе, например:

http://[yourapikeyhere]@example.com/api/customers/

Эта цитата из "тестирования доступа к веб-службе с помощью браузера":

Магазин должен предложить вам ввести имя пользователя и пароль. Идентификатор-это ключ аутентификации, а пароль отсутствует.

... кажется, совпадает с тем, что вы сказали о имени пользователя и пароле. Похоже, что эти ребята используют ключ API в качестве имени пользователя в обычном смысле http basic authentication без пароля (иначе было бы http://user:password@example.com), который, похоже, совпадает с примером RESTful URL, который они предоставили выше. Если обычная аутентификация через ваш браузер не работает, я бы предположил, что более вероятно, что ваш ключ API ошибочен - имейте в виду, что он, скорее всего, будет чувствителен к регистру.

https://stackoverflow.com/questions/28749812/prestashop-web-service-api-keeps-asking-for-authentication/28751502#comment45785057_28751502
Я уже сделал это, и он продолжает запрашивать имя пользователя и пароль, на самом деле это было первое, что я попробовал. Спасибо
https://stackoverflow.com/questions/28749812/prestashop-web-service-api-keeps-asking-for-authentication/28751502#comment46378408_28751502
@JuanJaimeEduardoMontemayor ты решил эту проблему? У меня точно такая же проблема.
Muhammad Naderi

29.08.2015 09:09:32

Для гуглеров вроде меня:

как и в текущей версии, 1.6.1.1, необходимо добавить этот код [ ?&ws_key=YourSecretKey] в конце url-адреса и доступ к веб-сервису с помощью этого метода, так как передача имени пользователя (указано в документах) не работает

 http://[YourPrestaShopUrl]/api?&ws_key=YourSecretKey
 eg: http://192.168.1.148/api/products?limit=5&ws_key=EUQ1J6NT1KVJ1S9SYGRCLGQE8IJU66DA

чтобы выполнить это с помощью библиотеки webservice, вы можете добавить эту строку :

$url .= '&ws_key=' . $this->key;

в строке 116 (в текущей версии), которая находится в

 protected function executeRequest($url, $curl_params = array())

и прямо перед инициализацией локона :

$session = curl_init($url);

что я и предложил в этой просьбе

Вы можете найти рабочую библиотеку в этом gist на данный момент

https://stackoverflow.com/questions/28749812/prestashop-web-service-api-keeps-asking-for-authentication/32283236#comment80559985_32283236
перейдя по ссылке вашего запроса, кто-то ответил, что на сервере должны отсутствовать некоторые конфигурации и/или правильно сформированные .файл htaccess, вы знаете, что это за конфы или содержимое htaccess?
https://stackoverflow.com/questions/28749812/prestashop-web-service-api-keeps-asking-for-authentication/32283236#comment80576208_32283236
@Matteobononi'peorthyr ' возможно, то, что вы ищете, - это второй ответ здесь, но я уверяю вас, что мой обходной путь работает
javinievas

02.06.2016 01:04:42

Просто создайте .htaccess в папке webservice с:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
https://stackoverflow.com/questions/28749812/prestashop-web-service-api-keeps-asking-for-authentication/37588717#comment70922644_37588717
это был мой случай, и решить постоянную проблему религии.
Shubham

28.03.2018 02:51:21

Привет я также прошел через ту же проблему если вы хотите избежать этой аутентификации prestashop то вы можете добавить ключ потребителя для этого магазина prestashop в url api например

http://localhost:8080/prestashop/api/products/2/?ws_key=TCXXHYPCT8DHWW64QXU1KEQVF4PQ1SJ6

здесь при доступе к деталям продуктов вы можете добавить ключ для доступа к деталям продуктов. Это также может быть полезно, если вы используете API веб-службы prestashop на другой платформе. Спасибо

https://stackoverflow.com/questions/28749812/prestashop-web-service-api-keeps-asking-for-authentication/49533800#comment86074194_49533800
Этот точный намек был дан и раньше. Есть что-то новое, что вы хотите добавить?
Jacob Nelson

19.11.2018 04:55:58

Начиная с prestashop 1.7.4, они предоставляют альтернативный метод.

т. е. получить доступ к http://yourstore.com/api/

он будет запрашивать имя пользователя/пароль.

Введите ключ, сгенерированный в качестве имени пользователя и оставьте поле пароля пустым.

Это даст вам выход, как

<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
  <api shopName="Tureds">
    <products xlink:href="https://www.tureds.com/api/products" get="true" put="false" post="true" delete="false" head="false">
      <description xlink:href="https://www.tureds.com/api/products" get="true" put="false" post="true" delete="false" head="false"> The products</description>
      <schema xlink:href="https://www.tureds.com/api/products?schema=blank" type="blank"/>
      <schema xlink:href="https://www.tureds.com/api/products?schema=synopsis" type="synopsis"/>
    </products>
  </api>
</prestashop>

enter image description here

Помнить

  1. чтобы включить веб-сервис в бэкэнде.
  2. Нет необходимости регенерировать .файл htaccess. Регенерация .файл htaccess предназначен для более старых версий для PrestaShop.
Закрыть X