所以我找到了关于这个主题的任何答案/文档,运气不佳。这似乎是比较常见的东西。我有一个新的网站设计为WordPress woocommerce驱动的网站。整个系统的功能并不像标准的woocommerce商店。至少不是界面方面的。所以前端和所有模板都需要自定义。然而,我想要做的是使用JS框架,并直接与Woocommerce API交互。这是我的担忧:
我为Woocommerce生成API密钥,并且必须在我对后端的请求中包含它(必须是读/写权限)。因此,如果这些请求是从前端发出的,那么任何bozo都可以只查看其网络选项卡并获取我的API密钥。是什么阻止他们向我的网站提出他们想要的任何请求?删除产品?获取用户数据?
我想我只是不清楚它应该如何起作用,而且从我在文档中看到的内容还不清楚。或者这个功能根本不是API的意图,它主要是为了让您的网站与第三方应用程序连接?
非常感谢您在此处使用Woocommerce API的任何见解!
提前致谢。
答案 0 :(得分:0)
在wordpress中有一个内置Backbone client,您只需wp_enqueue_script( '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密钥。
我希望这会有所帮助: - )
答案 1 :(得分:0)
如果你的wordpress网站在http服务器中,你需要使用某种编码来编码你的参数(密钥和秘密),即HMAC-SHA1
如果您的wordpress网站位于https服务器中,则其已编码且安全。然后只需将密钥和密钥作为参数传递。
所以在这两种情况下,没有人能够知道你的钥匙和秘密。浏览完整JS代码的文档。
检查我的回答here