任何人都可以解释magento客户登录的工作原理。
事实上,我有点奇怪的情况。我需要将所有客户从现有网站复制到新的magento网站(我希望我的客户使用相同的用户名密码登录新网站)。我知道密码是如何在旧网站中加密的(使用正常的php加密()函数加盐)但我无法解密它们。所以我想在客户帐户中添加一个名为'oldpassword'的新字段(我跟着this博客在客户帐户中创建新字段)。 我现在想要的是,在导入客户时,将旧的加密密码保存在“oldpassword”字段中。当客户尝试登录时,它应使用旧加密方法将密码与oldpassword字段匹配。如果密码匹配,则应生成标准magento密码并将其保存在默认密码字段中。因此,下次客户尝试登录时,应检查默认密码字段是否为空,然后才能正常登录。
ADDED
仍在等待帮助
我已经覆盖了客户 - > advanceContoller,但不太确定在loginPostAction中要做出哪些更改。
答案 0 :(得分:1)
请转到页面: app / code / core / Mage / Customer / Model / Customer.php
您可以看到函数public function authenticate($login, $password)
你也可以看到
/**
* Validate password with salted hash
*
* @param string $password
* @return boolean
*/
public function validatePassword($password)
{
if (!($hash = $this->getPasswordHash())) {
return false;
}
return Mage::helper('core')->validateHash($password, $hash);
}
/**
* Encrypt password
*
* @param string $password
* @return string
*/
public function encryptPassword($password)
{
return Mage::helper('core')->encrypt($password);
}
/**
* Decrypt password
*
* @param string $password
* @return string
*/
public function decryptPassword($password)
{
return Mage::helper('core')->decrypt($password);
}
请检查此文件。