Я работаю над входом в ajax для magento и столкнулся с небольшой проблемой при работе с ssl.
Страница запроса, которую я использую для отображения моего входа в систему, является небезопасной страницей. На этой странице я использую ajax для публикации на защищенный URL-адрес (https://client.devserver/customer/account/ajaxLoginPost/). Ответ json, который я получаю, верен, однако, когда я обновляю страницу, пользователь не вошел в систему.
Я протестировал эту функцию на незащищенном сайте, и она работает как задумано. Кажется, он ломается только при добавлении следующего уровня SSL.
Любая помощь с этим очень ценится.
Вот код моего контроллера.
public function ajaxLoginPostAction()
{
if ($this->_getSession()->isLoggedIn()) {
$this->_redirect('*/*/');
return;
}
$session = $this->_getSession();
if ($this->getRequest()->isPost()) {
$login = $this->getRequest()->getPost('login');
if (!empty($login['username']) && !empty($login['password'])) {
try {
$session->login($login['username'], $login['password']);
if ($session->getCustomer()->getIsJustConfirmed()) {
$this->_welcomeCustomer($session->getCustomer(), true);
}
$messages = array("isAuthed" => true);
} catch (Mage_Core_Exception $e) {
switch ($e->getCode()) {
case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD:
$message = $e->getMessage();
break;
default:
$message = $e->getMessage();
}
$messages = array("isAuthed" => false, "userName" => $login['username'],"error"=> $message);
} catch (Exception $e) {
// Mage::logException($e); // PA DSS violation: this exception log can disclose customer password
}
} else {
$messages = array("isAuthed" => false, "userName" => $login['username'],"error"=>'Login and password are required.');
}
}
//$this->_loginPostRedirect();
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($messages));
}