如何获取用户的密码并将其插入新银行

时间:2017-11-28 18:16:14

标签: php magento

我有我的magento客户端的哈希密码,我正在向新银行迁移旧银行的所有数据,我想知道如何在用户中输入密码。

我用这个来重新创建新网站上的用户,我会使用他们的密码,我怎么把它们放在那里?

ini_set("display_errors", 1);
require_once('app/Mage.php');
Mage::app(0);

$link = mysqli_connect('databaseip', 'login', 'password', 'database');
$link->set_charset("utf8");
$query = "SELECT * from customers";
$select = mysqli_query($link, $query);
foreach($select as $key => $selects) {
    while($row = mysqli_fetch_array($select)) {
        $teste = array(
            $clientes_id = $row['clientes_id'],
            $nome = $row['nome'],
            $sobrenome = $row['sobrenome'],
            $site = $row['site'],
            $loja = $row['loja'],
            $grupo = $row['grupo'],
            $email = $row['email'],
            $criadoem = $row['criadoem']
        );

        $customer = Mage::getModel("customer/customer");
        $customer->setId($clientes_id)->setFirstname($nome)->setLastname($sobrenome)->setWebsiteId($site)->setStoreId($loja)->setGroupId($grupo)->setEmail($email)->setCreatedAt($criadoem)->setPassword('');


        $customer->save();
    }
}

我使用此代码获取密码,我该怎么做才能在用户中正确插入密码?

$customer_email = 'test@test.com';
$customer_password = Mage::getModel("customer/customer")->setWebsiteId(Mage::app()
->getWebsite()->getId())->loadByEmail($customer_email)->getPasswordHash()."\n";

print_r(array("Passwrd_Hash"=>$customer_password));

我得到了什么

[Passwrd_Hash] => 6ca46cdc372243d3e768c306c07edcc0:e4OKoYvFzKQVGgZRQJIFp9ntAMMQCmYf

1 个答案:

答案 0 :(得分:0)

Magento仅存储客户密码的哈希值。以纯文本格式存储密码并不安全。如果您想将密码设置为客户模型而您不知道普通密码,但只知道哈希,那么您可以使用方法 setPasswordHash

$customer = Mage::getModel('customer/customer')->load($id);
$customer->setPasswordHash('...');
$customer->save();

但是,不要忘记Magento使用 md5 来创建哈希。如果您存储了以其他方式进行哈希处理的密码,那么您的用户将无法通过其密码登录。

如果您从另一个Magento迁移密码,那么我想没有问题。