从 http 切换到 https 时,Magento 会话丢失

Posted

技术标签:

【中文标题】从 http 切换到 https 时,Magento 会话丢失【英文标题】:Magento session lost when switching to https from http 【发布时间】:2011-12-11 01:26:17 【问题描述】:

我到处寻找解决方案,但没有运气。我的主人告诉我他们太忙了,没时间帮忙。

Magento 1.4.2 // SSL 证书

1- 当我将商品添加到购物车时,页面会重新加载,并且我的商品会添加到购物车。 [好]

2- 接下来,我点击主页,我的商品在购物车侧边栏中不再可见。 [不好]

3- 接下来,我点击“Tops”,我的商品在购物车侧边栏中仍然不可见。 [不好]

4- 接下来,我点击“Bottoms”,项目显示正常。

在购物车不可见的所有情况下,我都可以将 https 添加到 URL 并且购物车加载正常。谁能帮我弄清楚为什么我的会话在 http 和 https 之间丢失了?

我将所有后端 Web cookie 设置都设置为“否”,除了 sID。

另外-当用户登录时,购物车项目总是显示在右侧。如果他们是客人,那就太糟糕了。

谢谢大家,如果需要我发布任何代码,请告诉我。

wwwdotlylifdotcom

编辑:这是我在 firebug 中的 cookie 会话的屏幕截图(不完全确定我在看什么)。希望这可以帮助。

这是我在 magento 中的会话设置:我已经尝试了打开和关闭这些设置的几乎所有变体。

编辑!

这个问题实际上已经缩小到缓存问题。我们发现当缓存被转储/删除时,网站可以正常工作。但上网几分钟后,问题又出现了。有人有什么主意吗? (我应该更改问题标题吗?)

我正在使用 TinyBrick 的 Lightspeed 模块,新的缓存选项似乎与我们的网站混淆。 =(我很快就会联系他们。

**EDIT Tinybricks 出色的支持帮助了我们。感谢您的所有建议。

【问题讨论】:

【参考方案1】:

会话 cookie 是否设置为仅限 HTTPS?这将防止它被转移到常规 HTTP 请求中,从而有效地为用户提供两个不同的会话。

【讨论】:

我不确定如何检查这一点,但在后端“仅使用 HTTP”设置为“是”。我尝试将其更改为“否”,但在刷新/刷新缓存后仍然遇到同样的问题。 cookie 不是缓存的一部分。您必须单独清除 cookie。 我不知道该怎么做,但我将 cookie 会话设置为 10 秒,它终止了所有会话。我通过浏览器清除了我的 cookie,但我仍然遇到这种情况:((请原谅我对这个主题缺乏了解) 在哪里可以找到 cookie 被设置为 https-only?我将安全 url 测试为“http”,它工作正常。但这只能是暂时的,因为我需要在结帐/管理页面中使用 https =( 在 FF 中使用 Firebug 或在 chrome 中使用开发工具。它们允许您检查 cookie,其中一部分将是仅 https 标志。【参考方案2】:

您的屏幕截图中有两个带有两个域的前端 cookie,一个带有 www,另一个没有。检查配置 > Web 选项卡 > Cookie 管理 > Cookie 域(或类似名称)中的域名是否正确。如果为空,请将其设置为“.mydomain.com”,然后重试。 检查您在其他商店视图中的配置中是否没有不同的 cookie 域,将它们设置为“使用网站”。

如果还是不行,cookie管理和cookie验证设置的字段值是多少

【讨论】:

还是不行。我添加了我的会话设置的图像。问题仍然出现在“***”类别和其他一些类别中。【参考方案3】:

Tinybricks 的出色支持帮助了我们。感谢您的所有建议。这是一个基于缓存和名为 Lightspeed 的模块的本地化问题。

【讨论】:

你能分享一下你是怎么解决这个问题的 我们期待同样的问题,请分享修复 @Francesco 你使用插件“Lightspeed”吗? - 如果是这样,请阅读他们的打孔技术。他们提到它很难安装,但实际上并没有那么多工作。 @danchet:不,但我们使用 memcacache。 ...我打开了另一个问题,因为我的问题看起来相似但不相同 -> ***.com/questions/12506539/… 。 ...确实需要帮助,这需要尽快解决...亏钱【参考方案4】:

我们遇到了类似的问题,我们的自定义导航(取决于用户是否登录,在不同页面之间不是很一致。

我们遵循@http://ka.lpe.sh/2011/06/19/magento-checking-customer-admin-is-logged-in-or-not/ 的建议来检查用户是否在渲染特定块之前基于前端会话变量进行了登录,它似乎已经成功了。

也许您可以尝试类似的方法。

【讨论】:

以上是关于从 http 切换到 https 时,Magento 会话丢失的主要内容,如果未能解决你的问题,请参考以下文章

从 https 切换到 http 时登录后 spring-boot 用户会话未添加到上下文中

Grails 重定向控制器从 https 切换到 http。为啥?

如何将负载均衡器从 HTTP 切换到 HTTPS?

Ubuntu 16.04通过Magent搭建Memcached集群(转)

grafana 从 http 切换到 https

在 PHP 中从 HTTP 切换到 HTTPS 时会话丢失