Woocommerce在帖子请求上休息api无效签名(错误401)

时间:2017-02-25 14:53:18

标签: php wordpress postman woocommerce-rest-api oauth-1.0a

我正在为一家woocommerce商店开展Ionic 2项目。我在我的应用中使用Woocommerce REST API并使用Postman Chrome App使用OAuth-1.0测试API。我收到了GET请求的正确回复,但对于POST请求,我收到签名不匹配的错误,如:

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

1 个答案:

答案 0 :(得分:2)

我挣扎了几天(使用角度),最后发现这是一个CORS问题。浏览器实际上发送了一个OPTIONS请求,woocommerce-api收到该请求作为GET。使用this tool有助于排查问题。

最后通过设置我的.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"

您可以参考this answer获取详细说明