【问题标题】:Issue in setting cookie for subdomains in PHP在 PHP 中为子域设置 cookie 的问题
【发布时间】:2020-02-14 01:50:56
【问题描述】:

我尝试在 php 中为嵌入式 shopify 应用设置 cookie。

setcookie("user", 'test@domain.com', time()+3600, "/", "example.com", 1);

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

【问题讨论】:

    标签: php cookies shopify shopify-app


    【解决方案1】:

    Cookie/Session 基于域工作并且是唯一的。

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

    $_SESSION['logged_in_store'] = 'store1.myshopify.com'
    

    当第二个商店登录到您的应用时,此变量将简单地更新,因为单个会话将在此域上工作。

    作为解决方案,您可以使用wildcard subdomain

    从您的 DNS 启用通配符子域。当商店登录到您的商店时将它们重定向到唯一的子域.....就像商店 1 将在子域下面运行

    store1.your-app-domain.com

    商店 2 将在

    上运行

    store2.your-app-domain.com

    等等..每个商店将在不同的通配符子域上运行。这将解决您的会话/cookie 冲突。

    希望这会有所帮助。

    【讨论】:

    • 不可能用前缀会话名称之类的概念来克服这个问题。因为当一个商家从他的一个商店登录并且当他用他的另一家商店登录到同一个应用程序时,多次登录不是问题,所有会话变量都将被覆盖。这里只有一种解决方案是通配符子域。
    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2012-01-28
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多