【问题标题】:Header set cookie not working in shopify extension标头设置 cookie 在 shopify 扩展中不起作用
【发布时间】:2020-03-09 16:57:01
【问题描述】:

我正在开发 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');

但我仍然收到上述错误。我在Application > Storage > Cookies. 上查看时甚至创建了 cookie 谁能指导我缺少什么或为什么我在 chrome 80 上仍然出现此错误。 谢谢! 找到附件。 https://ibb.co/fFpSsZj https://ibb.co/LdT6Zdq

【问题讨论】:

  • 您收到什么错误?请将其包含在您的问题中
  • 为什么你不使用setcookie() 来代替?
  • @mitkosoft setcookie() 不支持SameSite 属性,这就是原因

标签: php codeigniter cookies header shopify


【解决方案1】:

您为什么认为 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);

【讨论】:

  • 我正在关注这个例子:link 但现在我更新了 cookie 中的一些代码并将会话值作为跨站点 cookie 值传递。 Cookie 已成功创建并显示。但它仍然在 shopify 上显示错误消息。无法加载该应用程序。检查问题中的上述附件。
  • 尝试清除缓存/cookies 并再次加载您的应用程序。如果没有帮助,请转到 chrome://flags,搜索 samesite 并尝试禁用 SameSite 默认 cookie没有 SameSite 的 Cookie 必须是安全的选项。再次转到您的应用程序,它现在必须加载良好。加载后,检查应用程序设置的 cookie 及其属性,找到不使用 SameSite=None; Secure 的,修复它们。将上述标志设置回Default 并尝试再次加载您的应用。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2013-07-10
    • 2011-04-13
    • 1970-01-01
    • 2013-07-24
    相关资源
    最近更新 更多