如何解决WooCommerce - 使用我们的应用程序身份验证端点自动生成 API 密钥会给出 401 无效 URL 错误
我正在尝试使用 WooCommerce 提供的 REST API 来生成 Customer Secret 和 Customer Key 值,以便它可以用于调用其他 WooCommerce REST API。我参考了有关生成键值的文档,并设法使用 Postman 中的模拟端点使其工作,该端点用于 API 中的回调 URL,如文档中所述。
我在后端服务器中创建了一个 POST 服务,并设法在本地环境中设置了 SSL 证书,并在 /etc 目录中的主机文件中映射了一个域。我运行了后端服务并通过 Postman 调用了回调 url 并且它起作用了。然后我将其用作实际 WooCommerce Auth 端点中的回调 URL,以编程方式生成密钥并将其保存在我的数据库中。但我得到了
“拒绝访问” - 错误:未提供有效的 URL..
当我通过 devtools 检查浏览器时 -> 网络注意到有一个 401 Unauthorize 错误。
这是用于 WooCommerce API 密钥生成的示例 GET URL
http://localhost/woocommerce/wc-auth/v1/authorize?app_name=<SOME_NAME>&scope=read_write&user_id=36&return_url=http://localhost/woocommerce/&callback_url=https://foo.bar.dev:44329/api/services/app/woo_commerce_auth/6/callback
callback_url = https://foo.bar.dev:44329/api/services/app/woo_commerce_auth/6/callback
当 callback_url 是使用 Postman 生成的模拟 url 时,它工作正常
callback_url = https://513ca6ab-db16-4635-8d0b-9159e3b1e187.mock.pstmn.io/api/services/app/woo_commerce_auth/6/callback
任何线索为什么会发生这种情况,我找不到解决此问题的方法。感谢您的帮助。
解决方法
您好,发布此内容以供将来参考,并希望它也能帮助遇到此问题的其他人。
设置 callback_url 时要记住的事情,
- 不允许使用非 HTTPS URL 端点。
- URL 不应是 localhost url(例如 localhost/callback 会给出无效的 URL 错误)
- URL 不应包含端口号(例如 localhost:4320/callback 或 foo.bar.dev:4892/callback 无效)
- 回调 URL 应该是一个 POST url
如果在检查完上述所有内容后出现诸如 Error: An error occurred in the request and at the time were unable to send the consumer data.
之类的错误,请检查与 callback_url 相关的后端服务代码(我有 500 服务器错误触发了此问题,这不是 WooCommerce 问题)
还有一个像 ngrok 这样的工具对于在您的本地环境中设置一个 HTTPS 端点来测试这个非常有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。