我遇到一个问题,Magento网站完全正常,只有结帐页面启用了https,但如果我将主要的不安全地址设置为https,以便整个网站都在https上,则登录过程会中断。
客户可以输入他们的详细信息,然后重定向回主页但不登录。
管理区域不受此影响并继续正常运行
请注意,该网站位于主要公司的子域名url trade.mydomain.co.uk
我在管理面板的Cookie部分尝试了很多不同的设置,例如将Cookie生命周期设置为零,将Cookie域名设置为等,以及将此“修复”设置为Customer / Model / Session.php < / p>
public function setCustomerAsLoggedIn($customer)
{
$this->setCustomer($customer);
//$this->renewSession();
Mage::dispatchEvent('customer_login', array('customer'=>$customer));
return $this;
}
上述修复程序允许客户登录,但是一旦加载任何其他页面,它们就会再次被踢出。
至于管理区域中的cookie设置,我尝试将生命周期更改为0,我尝试将cookie域设置为.mydomain.co.uk,mydomain.co.uk,trade.mydomain.co.uk 。 我已经尝试将cookie路径设置为/和更复杂的路径,如trade.mydomain
现在真的很困惑,该网站在HTTP上完美运行,管理区域在HTTPS上完美运行。只有在我将不安全域设置为https时才会出现问题。不合时宜的完整网站https是必需的。
答案 0 :(得分:-1)
创建目录app / code / local / Mage / Customer / Model,然后将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( );
部分,并使用//
使其看起来像评论。结果编码将如下所示
公共职能setCustomerAsLoggedIn($customer)
{
$this->setCustomer($customer);
//$this->renewSession();
Mage::dispatchEvent('customer_login', array('customer'=>$customer));
return $this;
}
现在,清除所有登录cookie。它会尽我所能为你服务。