【问题标题】:Server side API call in Shopify cart pageShopify 购物车页面中的服务器端 API 调用
【发布时间】:2019-01-15 10:49:35
【问题描述】:

我们目前正在使用购物车页面中的 ajax 调用第三方(我们的 API 到 OPT-IN 系统中的该用户)API 以实现 OPT-IN 功能。考虑到用户在使用 webhook 注册时已经在我们的系统中创建。现在只需选择加入该用户即可。

但是通过使用 ajax 调用 API,我们使访问令牌可见。因此,实现 API 的方式并不安全。

需要API调用来创建shopify公共APP。在那使用 API 检查我们系统中的用户状态。根据 API 响应,必须决定显示/隐藏一个按钮(该按钮添加到购物车页面中。)。我说的是实现我们用于创建 APP 的 API。该 API 需要我们提供的 Access Token。

因此,为了访问令牌的安全目的,需要在 Shopify 购物车页面中实现服务器端 API。

async function getData(){
            const result= await fetch("https://s15.socialannex.net/apiv2/userstatus/SITE_ID/{{ customer.email }}?access_token=ACCESS_TOKEN",{
                method: 'POST',
                data: {
                    'first_name': 'Atul'
                },
            });
            var res = await result.json();
            if(res.error_code == 0){
                $(".join-loyalty-button").css("display","none");
            }
          }

上面的代码工作正常,但它的 ajax 调用。我想在服务器端调用上面的 API。

【问题讨论】:

    标签: shopify shopify-app


    【解决方案1】:

    您想使用应用代理模式。请参阅此处的文档:

    https://help.shopify.com/en/api/guides/application-proxies
    

    这样,您可以使用 Ajax 将任何对您的回调重要的信息回调到您的 API。例如,客户 ID。回调是安全的,不会暴露任何安全令牌。您可以返回 JSON,这意味着您的前端代码可以根据内部应用程序的答案显示/隐藏按钮。

    【讨论】:

    • 检查了那个链接,但我不明白如何实现 App Proxy。你能举个例子吗
    • 嗨@davidlazar 成功实施了您的解决方案。但是在那个应用程序代理 URL (example-store.myshopify.com/apps/my-app-proxy/app_path) 中,“example-store”保持不变??或者需要获取每个要安装我的APP的商店名称?
    • 商店名称在传入请求中提供。因此,您可以进行安全检查并知道哪个商店正在呼叫。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    相关资源
    最近更新 更多