Magento中的自定义登录表单,重定向回某些客户

时间:2017-12-12 10:27:05

标签: session magento login magento-1.7

我为前一段时间在Magento中创建的应用创建了自定义登录表单。一切都运行良好,直到现在。一些客户在登录过程后被重定向回登录表单 - 浏览器 (如果我尝试使用他们的凭据登录,它工作正常)。

所以,我的猜测是会话,我记录了它们。 Session以正确的方式得到它。

登录很简单,基于Magento登录表单:

   if ($this->_getSession()->isLoggedIn()) {
        $this->_redirect('*/*/');
        return;
    }

    $login = $this->getRequest()->getPost('login');
    $session = $this->_getSession();
    /* do some password stuff */
    // here here
    $session->login($login['username'], $client_password);
    $this->_loginPostRedirect();

我测试了他们的登录并记录了会话:Mage_Customer_Model_Session Object - 一切正常,看起来与任何其他客户会话相同。

此类用户的最后一个url是/customer/account/loginPost/

我再说一遍:对于一些客户来说一切正常。此外,对于有问题的用户,我可以登录自己的应用程序。怎么会发生什么?我将会话保存在文件中,然后我将它们保存在db中 - 结果相同。

1 个答案:

答案 0 :(得分:0)

好的,经过几天对Magento的严格检查后,我找到了解决方案。

对于Magento 1.7(以及旧版本),问题来自用户会话。

将文件app\code\core\Mage\Customer\Model\Session.php复制到本地文件夹app\code\local\Mage\Customer\Model\Session.php

搜索public function login($username, $password)并对该行$this->renewSession();发表评论。

Magento可以为不安全的域创建一个SESSION ID,为安全域创建另一个cookie。之后,当您单击浏览器的Back按钮时,它会变得混乱 - 将您重定向到登录页面,因为它无法找到登录时创建的正确的SESSION ID。

相关问题