在https

时间:2017-02-28 10:52:42

标签: php magento session cookies magento-1.9

我遇到一个问题,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是必需的。

1 个答案:

答案 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。它会尽我所能为你服务。