提问者:小点点

发布请求时Woocommerce rest api签名无效(错误401)


我正在为一家伍迪商店做一个离子2项目。我在我的应用程序中使用WooCommerce REST API,并使用PostmanChrome应用程序使用OAuth-1.0测试API。我收到了GET请求的正确响应,但对于POST请求,我收到了签名不匹配的错误,因为:

{
  "code": "woocommerce_rest_authentication_error",
  "message": "Invalid Signature - provided signature does not match.",
  "data": {
    "status": 401
  }
}

共1个答案

匿名用户

我为此纠结了几天(使用angular ),最终发现这是CORS的问题。浏览器实际上发送了一个选项请求,woocommerce-api以GET的形式接收该请求。使用此工具有助于故障排除。

最后通过设置我的.htaccess解决了它,如下所示;

RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]]
Header set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Credentials "true"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"

您可以参考此答案以获取详细说明