Magento Auto Log客户

时间:2014-12-10 19:51:41

标签: magento autologin

我已经四处搜索,但没有找到解决方案(或者甚至可能)。

我正在运行Magento CE 1.9.1

我们的商店已协商特定购买群的定价,并且我使用客户群来执行此操作。并非所有客户都希望在线下订单,只想查看定价以发出采购订单。

是否有办法向客户发送一个链接,该链接将使用签署到该客户组的通用帐户自动登录,或将其发送到将要登录的CMS静态页面?

1 个答案:

答案 0 :(得分:0)

当然可以。看看你可以创建的这个例子:

class MyCompany_MyModule_MyLogMeInController extends Mage_Core_Controller_Front_Action
{
    public function myLogMeInAction() {
        $session = Mage::getSinglenton('customer/session');
        if ($session->isLoggedIn()) {
            //oops you are already logged in
            //option 1:
            // $this->_redirect('...somewhere...'); 
            // return;
            //option 2:
            // $session->logout();
            // $session->renewSession();
        }
        $groupId = $this->getRequest()->getParam('my_group');
        if ($groupId) {
            $customerId = $this->_myFunctionToRetrievePresetCustomerIdByGroupId($groupId);
            $session->loginById($customerId);
            $session->renewSession();
            $this->_redirect('...wherever i want now that the customer is logged in...');
        } else {
            //oops, invalid request
            $this->_forward('noRoute');
        }
    }
}

其中一个renewSession来电可能是不必要的,但比抱歉更安全。 此外,如果您不希望将ID更改为2而不是1,则可能不希望直接在浏览器中传递ID,因此您可以使用Magento加密/解密。请参阅Mage_Core_Helper_Data::encryptMage_Core_Helper_Data::decrypt