Prestashop 1.7 Webservice认证错误

时间:2017-06-15 16:57:52

标签: web-services prestashop prestashop-1.7

在Prestashop 1.7中,我尝试使用prestapyt与网络服务进行互动。

from prestapyt import PrestaShopWebServiceDict 
prestashop = PrestaShopWebServiceDict('http:\\hostname.ext\api', 'APIKEY')
ps = prestashop.search('addresses')

我收到此错误

prestapyt.prestapyt.PrestaShopAuthenticationError: 'Unauthorized'

为了尝试了解库中是否有错误,我尝试通过浏览器在API上进行连接。

在http:\ hostname.ext \ api上连接我收到登录请求。

在用户名中插入APIKEY并将密码字段留空as indicated here我再次收到未经授权的错误。

验证仅适用于将APIKEY设置为查询字符串

http:\\hostname.ext\api?&ws_key=APIKEY

但是这种方法在用户会话认证的prestapyt中不可用。

我错过了Prestashop的一些设置或了解这个问题的方法吗?

谢谢

1 个答案:

答案 0 :(得分:3)

找到问题并以这种方式解决了这个问题。

问题不在于Prestashop或prestapyt,而是与服务器配置(Apache + PHP)相关。

考虑到在我的情况下我在托管云服务中工作,我没有关于此的深入信息。

但是此配置的结果是Authorization标头未出现在$_SERVER变量中。这里报告的行为相同:

Why are $_SERVER[“PHP_AUTH_USER”] and $_SERVER[“PHP_AUTH_PW”] not set?

我在Prestashop安装中解决了将此语句添加到.htaccess文件中的问题:

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

根据建议here

我希望能帮助其他遭遇同样问题的Prestashop用户。