|
Post by account_disabled on Jan 25, 2024 9:58:52 GMT 5.5
本文是与Ktree合作创建的。感谢您对合作伙伴的支持,使 SitePoint 成为可能。 在本文中,我们将探讨 Magento cookie 如何导致面向客户的前端和管理后端的登录功能出现问题、出现该问题的原因以及应如何解决。 这也称为循环问题,因为即使用户名和密码正确,屏幕也会将自身重定向到同一屏幕。 本文末尾提供了一个脚本,可以帮助检测一些问题。请随意使用并根据您的需要进行修改。 什么是 Cookie? Cookie 是网络服务器可以存储在用户硬盘上并且以后也可以检索的一段文本。Magento 在购物车和后端管理功能中使用 cookie,当无法登录 Magento 时,它们可能是一些问题的根源。 什么是会话? 会话是服务器端的一个数组变量,它存储要跨多个页面使用的信息。例如,添加到购物车的商品通常保存在会话中,当用户浏览结账页面时,它们会从会话中读取。 会话由唯一 ID 标识。它的名称根据编程语言的不同而变化——在 ,它被称为“PHP 会话 ID”。正如您可能已经猜到的,相同的 PHP 会话 ID 需要作为 cookie 存储在客户端浏览器中才能关联。 Magento 的 Session 存储 Magento 可以通过多个会话提供程序存储会话,这可以在位于 的 Magento 配置文件中进行配置。可以在此处选择这些会话提供者。 文件 数据库 允许会话将自身存储在数据库中是通 用法 Magento 使用两个不同的 cookie,名为“frontend”和“adminhtml”。第一个是在浏览任 WhatsApp 号码数据 何页面时创建的。每当客户登录时,也会更新相同的 cookie,并在后端用户登录时创建下一个 cookie。您可以通过单击Inspect Element > Application来检查 cookie 是否已创建,如下图(来自 Chrome) Cookie 在 Magento 中通过配置管理菜单进行配置 – System > Configuration > General > Web。 问题:登录失败并重定向到登录页面 如果您没有遇到过这个问题,那么您使用 Magento 的时间还不够长! 通常情况是这样的:当您输入用户名和密码登录时,您将被重定向到相同的登录页面和 URL,并且您的浏览器会附加随机数 id。客户前端和 Magento 后端登录都会发生这种情况。 让我们看看发生这种情况的几个原因,以及我们应该如何解决这些问题。 原因#1:Cookie 域与服务器域不匹配 假设您的 Magento 站点是并且 Magento 中的 cookie 域配置为. 在这种情况下,两个 Magento cookie 都将设置,但为了验证会话,Magento 将考虑访问该站点所通过的域(在本例中)由于它无法找到具有域值的活动会话,因此即使提供了有效的凭据,它也会将用户重定向到登录页面。 登录或注销后,Magento 系统将使用以下脚本重新生成会话当您将 Magento 实例从一个域迁移到另一个域(例如从生产域迁移到暂存域)并且忘记更改 cookie 域时,您通常可能会看到这一情况。 注意:您可以运行提供的cookieTest.php脚本,该脚本验证服务器 cookie 域是什么以及 Magento 配置中的设置。 解决方案: 通过配置管理菜单更改 Cookie 域。转到 “系统”>“配置”>“常规”>“Web”,如屏幕截图所示。 或者,您可以通过运行这些 SQL 查询来更改此设置。
|
|