2017-01-11 9 views
0

Мы пытаемся настроить сеанс клиента прагматично в Magento. Мы устанавливаем сеанс через setCustomerAsLoggedIn способ. Но для некоторых клиентов он продолжает загружать/обрабатывать запрос, а в конце он показывает «Время выхода из шлюза или Время ожидания подключения». Его случайная проблема и не для всех клиентов.Magento установленный клиентский сеанс шлюза или ошибка тайм-аута соединения

Наша установка Magento имеет 3 веб-сайта B2B, B2E, B2C, и мы сталкиваемся только с этой проблемой для B2B и B2E-сайта. Пожалуйста, ознакомьтесь со следующей функцией и помощью с возможными решениями.

$customer=Mage::getModel('customer/customer')->load($id); 
$session = Mage::getSingleton('customer/session'); 
$session->setCustomerAsLoggedIn($customer); 
$this->_redirect(); 

ответ

0

Вместо непосредственного объекта прохождения клиента к сессии, вы должны передать следующим образом:

$session = Mage::getSingleton('customer/session', array('name' => 'frontend')); 
$session->login($email, $password); 
$session->setCustomerAsLoggedIn($session->getCustomer()); 

Таким образом передать объект клиента из сессии после завершения Логин.

Пожалуйста, попробуйте и сообщите нам, если это сработает для вас.

В случае, если вы хотите, чтобы войти в системе пользователей по электронной почте только вы можете также попробовать с следующим методом

$customer = Mage::getModel('customer/customer')->load($customerId); 
if ($customer->getWebsiteId()) { 
    Mage::init($customer->getWebsiteId(), 'website'); 
    $session = Mage::getSingleton('customer/session'); 
    $session->loginById($customerId); 
    return $session; 
} 

Вам нужно получить идентификатор клиента с помощью электронной почты первой для выше работы, а также веб-сайт является ключевыми

рабочий код:

После рабочий код, который я проверил себя на демо-сайте:

include("app/Mage.php"); 
Mage::app(); 
$customer = Mage::getModel("customer/customer"); 
$customer->setWebsiteId(Mage::app()->getStore()->getWebsiteId()); 
$customer->loadByEmail('[email protected]'); 
$customerId = $customer->getId(); 
Mage::init($customer->getWebsiteId(), 'website'); 
$session = Mage::getSingleton('customer/session'); 
$session->loginById($customerId); 
return $session; 
exit; 
+0

На самом деле, мы не запрашиваем пароль у пользователя. У нас просто есть система входа в систему с подтверждением электронной почты и OTP. Поэтому мы просто загружаем клиента по электронной почте после подтверждения OTP и устанавливаем объект клиента в сеансе. –

+0

hmm вы можете попробовать, установив сайт для пользователя после i.e $ customer-> setWebsiteId ($ websiteId); также обновил мой ответ –

 Смежные вопросы

  • Нет связанных вопросов^_^