如何解决Shopify公共应用会话冲突

时间:2018-11-02 06:13:20

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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