【发布时间】:2018-06-23 14:37:07
【问题描述】:
到目前为止我所做的事情
我按照本指南设置了一个带有 Rails 后端 + React 的 Shopify 应用: https://medium.com/@esimonian16/setting-up-a-shopify-app-with-rails-5-1-webpack-react-and-polaris-b8535d911275
似乎一切正常。我正在使用 shopify_app gem。
当我在商家仪表板中导航到我的应用程序时,Rails 中的主控制器会呈现一个 React 应用程序,该应用程序显示一些产品(这些是从 rails 以 json 形式传递的)。
我现在想做的事
我想在 React 'List customers' 中有一个按钮,然后它应该更新 react 组件并将所有客户显示为一个列表。
我在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 是一个非常糟糕的主意,因为我会将我的秘密暴露给全世界,对吧?
- 我做错了什么?正确的做法是什么?
【问题讨论】:
标签: ruby-on-rails ruby shopify shopify-app