更改客户密码字段Magento

时间:2012-03-08 12:18:18

标签: magento passwords account

任何人都可以解释magento客户登录的工作原理。

事实上,我有点奇怪的情况。我需要将所有客户从现有网站复制到新的magento网站(我希望我的客户使用相同的用户名密码登录新网站)。我知道密码是如何在旧网站中加密的(使用正常的php加密()函数加盐)但我无法解密它们。所以我想在客户帐户中添加一个名为'oldpassword'的新字段(我跟着this博客在客户帐户中创建新字段)。 我现在想要的是,在导入客户时,将旧的加密密码保存在“oldpassword”字段中。当客户尝试登录时,它应使用旧加密方法将密码与oldpassword字段匹配。如果密码匹配,则应生成标准magento密码并将其保存在默认密码字段中。因此,下次客户尝试登录时,应检查默认密码字段是否为空,然后才能正常登录。

ADDED

仍在等待帮助

我已经覆盖了客户 - > advanceContoller,但不太确定在loginPostAction中要做出哪些更改。

1 个答案:

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

请检查此文件。