到目前为止我设法做的事情
我按照本指南设置了带有 Rails 后端 + React 的 Shopify 应用程序: https ://medium.com/@esimonian16/setting-up-a-shopify-app-with-rails-5-1-webpack-react-and -北极星-b8535d911275
一切似乎都很好。我正在使用 shopify_app gem。
当我在商家仪表板中导航到我的应用程序时,Rails 中的主控制器会呈现一个 React 应用程序,该应用程序显示一些产品(这些是从 Rails 传递的,以响应为 json)。
我现在想做的事
我想在 React 'List customers' 中有一个按钮,然后它应该更新反应组件并将所有客户显示为一个列表。
我在以下位置创建了一个新控制器my-app.com/customers
class CustomersController < ShopifyApp::AuthenticatedController
def index
customers = ShopifyAPI::Customer.find(:all, params: { limit: 10 })
render json: customers
end
end
如果我进入my-app.com/customers
浏览器,我会得到正确的 json 响应。
然后我尝试从 React 中获取这些数据。
fetch('https://my-app.com/customers', {
headers : {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
})
.then(response => response.json())
.then(parsedJSON => {
console.log(parsedJSON);
// Update state
// this.setState(...);
})
.catch(error => console.error(error));
Rails 后端不允许请求获取此数据,因为它没有被授权,所以它被重定向到/login
在 React 中,我可以访问session.token
,但是我不确定如何使用它来验证我的请求?
问题
- 如何对 Shopify API 进行此类调用?我是否在尝试正确的方法,即在 React 和实际 Shopify Api 调用之间使用我的后端?
- 如何验证我的呼叫,以便它们像我
/customers
在浏览器中呼叫一样通过? - 我猜想直接从 React 进行 Shopify Api 调用将是一个非常糟糕的主意,因为我会将我的秘密暴露给世界,对吧?
- 我究竟做错了什么?什么是正确的方法?