在PHP中为子域设置cookie时出现的问题

在PHP中为子域设置cookie时出现的问题,php,cookies,shopify,shopify-app,Php,Cookies,Shopify,Shopify App,我尝试在php中为嵌入式shopify应用程序设置cookies setcookie(“用户”test@domain.com,time()+3600,“/”,“example.com”,1) 它可以正常工作,但如果我们使用2个shopify网站登录,并且两个网站在同一浏览器中同时打开应用程序,则会更新cookie值,并为这两个网站设置相同的cookie,从而在两个位置显示相同的数据。cookie/Session根据域工作,并且将是唯一的 假设您的应用程序域是example.com,并将会话中登录

我尝试在php中为嵌入式shopify应用程序设置cookies

setcookie(“用户”test@domain.com,time()+3600,“/”,“example.com”,1)


它可以正常工作,但如果我们使用2个shopify网站登录,并且两个网站在同一浏览器中同时打开应用程序,则会更新cookie值,并为这两个网站设置相同的cookie,从而在两个位置显示相同的数据。

cookie/Session根据域工作,并且将是唯一的

假设您的应用程序域是example.com,并将会话中登录的域另存为

$_SESSION['logged_in_store'] = 'store1.myshopify.com'
当第二个应用商店登录到您的应用程序时,此变量将简单地更新,因为单个会话将在此域上工作

作为一种解决方案,您可以利用

从您的DNS启用通配符子域。当存储登录到您的存储时,将它们重定向到唯一子域。。。。。类似的存储1将在下面的子域上运行

store1.your-app-domain.com

商店2将继续运行

store2.your-app-domain.com

以此类推。。每个存储将在不同的通配符子域上运行。这将解决会话/cookie冲突


希望这会有所帮助。

使用前缀会话名称之类的概念无法解决此问题。当一个商家从他的一个商店登录,并且当他从另一个商店登录到同一个应用程序时,所有会话变量都将覆盖,这与多次登录无关。这里只有一个解决方案是通配符子域。