Woocommerce REST API 401

时间:2018-03-20 00:00:10

标签: woocommerce woocommerce-rest-api

之前已经问过类似的问题,但我不确定提议的解决方案是否适用于我的情况。我根据woocommerce api文档生成了consumerKey和consumerSecret。我已经确认我可以通过调用webbrowser中的以下URL来使用这些键获得结果:

https://mywebsite.com/wp-json/wc/v2/products?consumer_key=ck_blahblah&consumer_secret=cs_blahblah

但是,当我在邮递员中执行相同的api调用时,使用GET并正确替换user-> consumerKey和pass - > consumerSecret我总是得到401:woocommerce_rest_cannot_view。我试过http和https都有同样的错误。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

使用此插件https://github.com/WP-API/Basic-Auth,当您调用API时,请使用用户名和密码进行基本身份验证。

答案 1 :(得分:0)

Woo Commerce对HTTP和HTTPS使用不同的身份验证方法。

因此,如果Apache / Nginx未将“ HTTPS” = 1传递给您的代码,它将强制执行HTTP方法。

仔细检查是否将此“ HTTPS”传递给您的PHP:

  1. 打开文件:./wp-includes/load.php
  2. 搜索“ is_ssl”
  3. 插入一个“ echo'test_beg'; echo $ _SERVER ['HTTPS']; echo 'test_end';
  4. 通过API进行请求
  5. 如果它返回test_beg和test_end,而在其中不带“ on”或“ 1” 中间,未传递HTTPS列表项

使用反向代理时可能会发生,因此,您可能需要在httpd.conf上插入“ SetEnvIf HTTPS on HTTPS = on”(如果使用Apache)。

我希望这会有所帮助:)

(请记住在load.php上删除这些“回声”)

相关问题