Php PrestashopWeb服务API不断要求进行身份验证
我遇到这个问题,我从prestashop启用了webservice,如果我直接从post方法传递参数的URL,我可以访问它 “我的钥匙” 但是,如果我尝试访问而不将ws_密钥作为参数传递,它会不断要求我进行身份验证Php PrestashopWeb服务API不断要求进行身份验证,php,api,authentication,get,prestashop,Php,Api,Authentication,Get,Prestashop,我遇到这个问题,我从prestashop启用了webservice,如果我直接从post方法传递参数的URL,我可以访问它 “我的钥匙” 但是,如果我尝试访问而不将ws_密钥作为参数传递,它会不断要求我进行身份验证 从我读到的,当认证被提示时,你需要使用API密钥作为用户名,并留下空白密码,但它只是不断提示身份验证。 我能做什么 我一直在努力学习本教程 如果您有任何帮助,我们将不胜感激。看起来您应该能够将API密钥放在URL中,以代替常规HTTP请求中用户名的位置,例如: http://[you
从我读到的,当认证被提示时,你需要使用API密钥作为用户名,并留下空白密码,但它只是不断提示身份验证。
我能做什么 我一直在努力学习本教程 如果您有任何帮助,我们将不胜感激。看起来您应该能够将API密钥放在URL中,以代替常规HTTP请求中用户名的位置,例如:http://[yourapikeyhere]@example.com/api/customers/
这段引用自“使用浏览器测试对web服务的访问”:
商店应该提示您输入用户名和密码。ID是身份验证密钥,没有密码
。。。似乎与你所说的用户名和密码相符。看起来这些家伙在常规HTTP基本身份验证中使用API密钥作为用户名,没有密码(否则将是
http://user:password@com
),这似乎与他们上面提供的RESTful URL示例相匹配。如果通过浏览器进行的基本身份验证不起作用,我建议更有可能是API密钥错误-请记住,它很可能区分大小写。对于像我这样的谷歌用户:
自版本1.6.1.1以来,需要在url末尾添加此代码[?&ws_key=YourSecretKey
],并使用此方法访问Web服务,因为passing as username(在文档中声明)不起作用
http://[YourPrestaShopUrl]/api?&ws_key=YourSecretKey
eg: http://192.168.1.148/api/products?limit=5&ws_key=EUQ1J6NT1KVJ1S9SYGRCLGQE8IJU66DA
要使用完成此操作,可以添加此行:
$url .= '&ws_key=' . $this->key;
在第156行(当前版本),该行位于
protected function executeRequest($url, $curl_params = array())
在初始化卷曲之前:
$session = curl_init($url);
只需在webservice文件夹中创建一个.htaccess,其中包含:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
重新启动发动机
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
您好,我也遇到了同样的问题,如果您想避免对prestashop的身份验证,那么您可以在api url中为该prestashop存储添加消费者密钥,如下所示
在这里,在访问产品详细信息时,您可以添加消费密钥以访问产品详细信息。
当您在其他平台中使用prestashop web服务API时,它也很有用。
感谢自从prestashop 1.7.4以来,他们提供了一种替代方法 ie;访问
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>
记得吗
在后端启用webservice李>
无需重新生成.htaccess文件。.htaccess文件的重新生成适用于较旧版本的
普雷斯塔索普
我已经这样做了,它一直提示输入用户名和密码,事实上这是我第一次尝试。感谢you@JuanJaimeEduardoMontemayor你解决这个问题了吗?我也有同样的问题。根据您请求的链接,有人回答说服务器应该缺少一些配置和/或正确格式的.htaccess文件,您知道哪些是conf或htaccess内容吗?@matteobonni'peorthyr'也许您要找的是第二个答案,但我向您保证,我在PrestaShop版本1.7.6.2中的工作环境@MuhammadNaderi提供的解决方案仍然是处理此问题的最简单方法@Matteobonni'peorthyr'链接请求中建议的服务器配置之一是basic auth mod
,我确认情况并非如此(至少在我的情况下不是这样)。这一确切的提示以前已经给出过。你有什么新的想法吗?