gpt4 book ai didi

Magento Ajax 登录 - 通过 SSL

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:51 24 4
gpt4 key购买 nike

我正在为 magento 开发 ajax 登录,在处理 ssl 时遇到了一个小问题。

我用来显示我的登录 View 的请求页面是一个非安全页面。从这个页面,我使用 ajax 发布到一个安全的 url (https://client.devserver/customer/account/ajaxLoginPost/)。我返回的 json 响应是正确的,但是当我刷新页面时用户未登录。

我已经在一个不安全的网站上测试了这个功能,它可以正常工作。它似乎只有在我添加下一层 SSL 时才会中断。

非常感谢对此的任何帮助。

这是来 self 的 Controller 的代码。

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));
}

最佳答案

实际上有两个 cookie(因此有两个 session ),一个用于“http”连接,一个用于“https”。

您可以在执行登录后转到安全页面 - 这不需要 AJAX 表单 - 或者返回 SID在 JSON 响应中找到一种方法来使用该值设置非安全 cookie。

第三种选择是让整个站点处于安全状态,这会给服务器带来额外的工作和成本,因此并非所有企业都愿意采取这种明智的预防措施。

关于Magento Ajax 登录 - 通过 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com