【问题标题】:How to resolve shopify public app session conflicts如何解决 shopify 公共应用会话冲突
【发布时间】:2018-11-02 06:13:20
【问题描述】:

我在 shopify 中创建了一个简单的嵌入式公共应用程序,使用节点 js 进行测试。它工作正常。 而我在同一个浏览器的不同选项卡中开了两家商店。我面临会话冲突的问题。 例如商店域名store1.myshopify.comstore2.myshopify.com 在同一个chrome 浏览器中打开。首先我打开 store1 它工作正常。然后我打开了商店 2,它改变了 store1 应用程序的会话值。现在在两个商店应用程序中都显示了 store2 记录。 我不知道如何处理这个。请指导我如何解决此问题。

【问题讨论】:

    标签: node.js express session shopify shopify-app


    【解决方案1】:

    这很简单。当您收到传入请求时,您可以将活动会话存储名称与传入存储名称进行比较。如果它们不同,您必须关闭会话,然后为新商店重新打开它。

    由于您的应用为所有商店发布了一个 cookie 密钥,因此任何打开的浏览器选项卡都会共享此密钥,因此您需要根据来自选项卡的信息关闭/打开连接。

    请注意,当您关闭一个会话时,这意味着当您再次使用已关闭会话的选项卡时,您将重新进行身份验证。这意味着您的客户可能会也可能不会发送商店名称(特别是如果您的 App 视图有 XHR 调用而没有商店名称作为参数)。所以在那儿要小心。这可能很难处理好。

    【讨论】:

    • 感谢您的回答@davidlazar。很有用
    • 从已安装的应用列表页面“shop1.myshopify.com/admin/apps”打开应用时,它会在 req.query 中返回 shopdomain 作为参数,然后在应用内。我的自定义菜单未在 req.query 中发送 shopdomain。在这种情况下。我该如何处理
    • 您可以在参数中将店铺域名发送到您自己的App。这很糟糕,但这就是生活。
    猜你喜欢
    • 2012-11-15
    • 1970-01-01
    • 2012-01-09
    • 2016-02-22
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    相关资源
    最近更新 更多