PrestaShop веб-службы API требует проверки подлинности
У меня возникла эта проблема я включил веб-сервис из 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

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 ошибочен - имейте в виду, что он, скорее всего, будет чувствителен к регистру.



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 на данный момент



02.06.2016 01:04:42
Просто создайте .htaccess в папке webservice с:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>


28.03.2018 02:51:21
Привет я также прошел через ту же проблему если вы хотите избежать этой аутентификации prestashop то вы можете добавить ключ потребителя для этого магазина prestashop в url api например
http://localhost:8080/prestashop/api/products/2/?ws_key=TCXXHYPCT8DHWW64QXU1KEQVF4PQ1SJ6
здесь при доступе к деталям продуктов вы можете добавить ключ для доступа к деталям продуктов. Это также может быть полезно, если вы используете API веб-службы prestashop на другой платформе. Спасибо


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>
Помнить
- чтобы включить веб-сервис в бэкэнде.
- Нет необходимости регенерировать .файл htaccess. Регенерация .файл htaccess предназначен для более старых версий для PrestaShop.