【问题标题】:Woocommerce REST API 401Woocommerce REST API 401
【发布时间】:2018-08-28 16:23:55
【问题描述】:

之前有人问过类似的问题,但是我不确定建议的解决方案是否可以应用于我的案例。我根据 woocommerce api 文档生成了 consumerKey 和 consumerSecret。我已经确认我可以通过在网络浏览器中调用以下 url 来使用这些键获得结果:

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

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

【问题讨论】:

    标签: woocommerce woocommerce-rest-api


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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中删除这些'echo')

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-16
        • 1970-01-01
        • 1970-01-01
        • 2019-02-05
        • 1970-01-01
        • 2017-07-16
        • 1970-01-01
        相关资源
        最近更新 更多