Header 设置 cookie 在 shopify 扩展中不起作用

Header set cookie not working in shopify extension

我正在 php codeigniter 上开发 shopify 扩展。 7.1 php 版本。 我在 shopify 上安装扩展程序时收到此错误。 无法加载该应用 然后我在默认控制器中添加此代码:

header('Set-Cookie: same-site-cookie=foo; SameSite=Lax');
header('Set-Cookie: cross-site-cookie=bar; SameSite=None; Secure');

但我仍然收到上述错误。甚至 cookie 都是在我检查时创建的 Application > Storage > Cookies. 任何人都可以指导我缺少什么或者为什么我仍然在 chrome 80 上收到此错误。 谢谢! 找到附件。 https://ibb.co/fFpSsZj https://ibb.co/LdT6Zdq

您为什么认为 cookie 是个问题?您可能想在设置或其他一些内部错误中检查应用程序的路径。

无论如何,如果您确定问题出在您的 cookie 中 - 您尝试设置的内容就没有任何意义。我假设您只是在某处找到了一个示例,并在不理解的情况下盲目地将其添加到您的应用程序中。

  1. 使用第二种构造。这是从嵌入式应用程序中设置 cookie 所需的示例。

  2. cross-site-cookie=bar 只是要设置 cookie 的示例。您应该在应用中设置 cookie 的任何地方用您的键值对替换它。

  3. false 作为第二个参数添加到 header() 函数以允许一次设置多个 cookie。

这是一个例子:

header('Set-Cookie: username=John; Path=/; SameSite=None; Secure', false);
header('Set-Cookie: age=30; Path=/; SameSite=None; Secure', false);

它现在工作正常。解决方案是去 chrome://flags 并搜索 samesite 并尝试默认禁用 SameSite cookies没有 SameSite 的 Cookie 必须是安全的 选项。再次转到您的应用程序,错误将隐藏。然后转到应用程序 > 存储 > Cookies 并检查已经创建的应用程序 cookie。它可能在 cookie 中包含会话 ID。只需用相同的名称、值等替换包括此 SameSite=none, secure 在内的此 cookie,然后再次恢复您的标志设置并重新加载应用程序。它会工作正常。 谢谢!