Wordpress Woocommerce API-来自我自己前端的请求

Wordpress Woocommerce API-来自我自己前端的请求,wordpress,woocommerce,wordpress-rest-api,woocommerce-rest-api,Wordpress,Woocommerce,Wordpress Rest Api,Woocommerce Rest Api,因此,我一直在寻找关于这个主题的任何答案/文档,但运气不佳。这似乎是比较常见的事情。我有一个新的网站设计为WordPress电子商务网站。整个系统的功能并不像一个标准的商业商店。至少在接口方面不是这样。因此前端和所有模板都需要定制。然而,我想做的是使用JS框架,并直接与WooCommerceAPI交互。我关注的是: 我为Woocommerce生成API密钥,并且必须将其包含在对后端的请求中(必须具有读/写权限)。因此,如果这些请求是从前端发出的,任何bozo都可以简单地查看他们的网络选项卡并获取

因此,我一直在寻找关于这个主题的任何答案/文档,但运气不佳。这似乎是比较常见的事情。我有一个新的网站设计为WordPress电子商务网站。整个系统的功能并不像一个标准的商业商店。至少在接口方面不是这样。因此前端和所有模板都需要定制。然而,我想做的是使用JS框架,并直接与WooCommerceAPI交互。我关注的是:

我为Woocommerce生成API密钥,并且必须将其包含在对后端的请求中(必须具有读/写权限)。因此,如果这些请求是从前端发出的,任何bozo都可以简单地查看他们的网络选项卡并获取我的API密钥。是什么阻止他们向我的网站提出任何请求?删除产品?获取用户数据

我想我只是不清楚这是怎么回事,也不清楚我在文件中看到了什么。或者,此功能根本不是API的意图,它的存在主要是为了允许您的站点与第三方应用程序接口

如果您对使用WooCommerceAPI有任何见解,我们将不胜感激

提前感谢。

wordpress中有一个内置程序,您需要做的就是
wp\u enqueue\u脚本('wp-api')导入到代码中,并将其放在前端的
window.wp.api

你可以得到这样的帖子

const posts = new wp.api.collections.Posts();
posts.on('sync', () => console.log(`${posts.length} posts synced`))
posts.fetch();
在引擎盖下,这使用了一个
X-WP-Nonce
http头,它正好过期,如果发生这种情况,页面需要重新加载以获得一个新的
X-WP-Nonce
。无需生成api密钥即可使其正常工作

我希望这能有所帮助:-)

wordpress中有一个内置的,你需要做的就是
wp\u enqueue\u脚本('wp-api')导入到代码中,并将其放在前端的
window.wp.api

你可以得到这样的帖子

const posts = new wp.api.collections.Posts();
posts.on('sync', () => console.log(`${posts.length} posts synced`))
posts.fetch();
在引擎盖下,这使用了一个
X-WP-Nonce
http头,它正好过期,如果发生这种情况,页面需要重新加载以获得一个新的
X-WP-Nonce
。无需生成api密钥即可使其正常工作


我希望这有帮助:-)

如果您的wordpress站点位于http服务器中,您需要使用某种编码来编码您的参数(密钥和密码),即HMAC-SHA1


如果您的wordpress站点位于https服务器中,则其已编码且安全。然后只需将密钥和密码作为参数传递

所以在这两种情况下,没有人知道你的钥匙和秘密。仔细阅读文档以获得准确的JS代码


检查我的答案

如果你的wordpress站点在http服务器上,你需要使用某种编码来编码你的参数(密钥和密码),即HMAC-SHA1


如果您的wordpress站点位于https服务器中,则其已编码且安全。然后只需将密钥和密码作为参数传递

所以在这两种情况下,没有人知道你的钥匙和秘密。仔细阅读文档以获得准确的JS代码


检查我的答案

是的,我知道我可以使用内置的woocommerce功能自己构建应用程序的后端。我不同意RESTAPI仅用于外部消费。一个前端javascript应用程序——比方说使用Angular之类的东西——您可能希望仅作为API与站点的后端进行交互。很多web应用程序都是这样工作的。一个javascript“服务”消耗一个解耦的后端。这正是我想知道的解决方案,我的网站的一部分,其中前端功能作为一个独立的应用程序。我知道这在WPS中没有很好的理解。你解决了这个问题吗?我遇到了同样的问题是的,我知道我可以使用内置的woocommerce功能自己构建我的应用程序的后端。我不同意RESTAPI仅用于外部消费。一个前端javascript应用程序——比方说使用Angular之类的东西——您可能希望仅作为API与站点的后端进行交互。很多web应用程序都是这样工作的。一个javascript“服务”消耗一个解耦的后端。这正是我想知道的解决方案,我的网站的一部分,其中前端功能作为一个独立的应用程序。我知道这在WPS中没有很好的理解。你解决了这个问题吗?我在woo commerce mlmtrees.com/product/woocommerce-b2c-REST-API中遇到了同样的问题:前端REST API的最佳插件与woo commerce mlmtrees.com/product/woocommerce-b2c-REST-API的最佳插件