无法在Chrome的前端登录到安全(SSL)Magento站点
-
13-12-2019 - |
题
我一直在努力登录网站www.dragondirectsales.com。这是一个Magento 1.9.1网站。该网站有一个子域,cas.dragondirectsales.com。一切似乎很好,直到我们将网站移动到目前正在使用的现场托管之前。
自从以来,我们一直在战斗前端(客户登录)和后端(admin)上的登录问题。如果您尝试登录,它只循环回到适当的登录屏幕,没有错误消息。这一次只会适用于客户登录。每次发生它都会花费几个小时试图修复它,并设法让它在每个可以想到的每个测试用例中工作。然后大约一个月后,客户通过电子邮件发送给我,并宣誓他在管理部分中没有触及任何东西。我们在第四次我必须解决这个问题,之前所有的更改都似乎仍然存在,所以我对导致这个问题的原因令人损失。
现在我在前端使用安全网址。 cookie路径是空白的。 cookie域是.dragondirectsales.com。我只使用http(ipad正在拥有这个修复的单独登录问题)。 cookie限制模式设置为no。
在这次工作的最后一次之间唯一发生的事情是我们在部分支付扩展方面有一个扩展开发人员工作,我并不完全相信他们的工作与这个问题有任何关系。我可以从模块XML中完全关闭扩展,问题仍然发生。
任何完全赞赏的帮助!
解决方案
我相信我终于找到了这个问题。
诀窍是创建目录应用/代码/本地/法师/客户/模型,并将文件SESSION.PHP复制到其中。Session.php文件可以在App / Code / Core / Mage / Customer / Model中找到。文件移动后,找到以下部分:
public function setCustomerAsLoggedIn($customer)
{
$this->setCustomer($customer);
$this->renewSession();
Mage::dispatchEvent('customer_login', array('customer'=>$customer));
return $this;
}
.
注释出$ this-> renewsession();部分,所以它看起来像这样:
public function setCustomerAsLoggedIn($customer)
{
$this->setCustomer($customer);
//$this->renewSession();
Mage::dispatchEvent('customer_login', array('customer'=>$customer));
return $this;
}
.
确保清除所有登录cookie。 我在Chrome,Firefox和IE上测试了这一点,在iPad上的Safari和Safari,一切都像魅力一样工作。
感谢此堆栈Exchange条目以获取答案: 不稳定的cookie相关的登录问题
其他提示
您必须强制magento使用相同的cookie域来均为安全和不安全的URL。您可以使用Firefox或Chrome浏览器中的开发人员工具检查您的网站cookie。在Magento 1.9.2.4上测试该解决方案
当会话cookie管理变量未设置错误时,Magento可能会使用不同的cookie域创建两个“前端”cookie。当您具有安全URL时,通常在登录过程中发生这种情况。以下是会话cookie管理配置的可行值。
Cookie Life Time: 3600 Cookie Path: / Cookie Domain : .mydomain.com (The dot prefix is important) Use HTTP Only : No Cookie Restriction Mode: No.
- 在管理面板中转到系统 - >配置 - >网页 - >会话cookie管理
- 设置cookie管理配置,如上所示
- 保存配置并清除Magento缓存
- 重新启动Web服务器以清除PHP变量,以防直接在MySQL数据库中进行更改
- 清除浏览器缓存以删除与Magento网站关联的任何现有cookie。这很重要。
在cookie域上使用dot prefix对于防止为安全URL创建重复cookie,对于安全URL
,非常重要更改cookie域也将影响magento后端使用的“adminhtml”cookie。确保清除您的浏览器缓存以防止管理员登录问题。
在yu正确设置Web会话cookie管理配置时,不需要如此答案的核心代码。