Prestashop Web Service API不断要求身份验证

Jua*_*or 2 php authentication api get prestashop

我遇到这个问题我从prestashop启用了web服务,如果我直接从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)

任何帮助将不胜感激

Muh*_*eri 13

对于像我这样的谷歌:

在当前版本1.6.1.1中,需要?&ws_key=YourSecretKey在url的末尾添加此代码[ ]并使用此方法访问webservice,因为传递为用户名(在文档中说明)不起作用

 http://[YourPrestaShopUrl]/api?&ws_key=YourSecretKey
 eg: http://192.168.1.148/api/products?limit=5&ws_key=EUQ1J6NT1KVJ1S9SYGRCLGQE8IJU66DA
Run Code Online (Sandbox Code Playgroud)

要使用webservice库完成此操作,您可以添加以下行:

$url .= '&ws_key=' . $this->key;
Run Code Online (Sandbox Code Playgroud)

在第116行(当前版本),在

 protected function executeRequest($url, $curl_params = array())
Run Code Online (Sandbox Code Playgroud)

在初始化cURL之前:

$session = curl_init($url);
Run Code Online (Sandbox Code Playgroud)

这是我在这个请求中提出的

您可能会发现在图书馆工作的这要点,现在


Rob*_*ill 1

他们的文档来看,您似乎应该能够将 API 密钥放入 URL 中,以代替常规 HTTP 请求中用户名所在的位置,例如:

http://[yourapikeyhere]@example.com/api/customers/
Run Code Online (Sandbox Code Playgroud)

引用自“使用浏览器测试对 Web 服务的访问”:

商店应该提示您输入用户名和密码。ID是认证密钥,没有密码。

...似乎与您所说的用户名与密码相符。看起来这些人正在使用 API 密钥作为常规 HTTP 基本身份验证意义上的用户名,没有密码(否则就是http://user:password@example.com),这似乎与他们上面提供的 RESTful URL 示例相匹配。如果通过浏览器进行的基本身份验证不起作用,我建议您的 API 密钥更有可能是错误的 - 请记住它很可能区分大小写。

  • @JuanJaimeEduardoMontemayor 你解决这个问题了吗?我有同样的问题。 (3认同)