我有我的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
答案 0 :(得分:0)
Magento仅存储客户密码的哈希值。以纯文本格式存储密码并不安全。如果您想将密码设置为客户模型而您不知道普通密码,但只知道哈希,那么您可以使用方法 setPasswordHash 。
$customer = Mage::getModel('customer/customer')->load($id);
$customer->setPasswordHash('...');
$customer->save();
但是,不要忘记Magento使用 md5 来创建哈希。如果您存储了以其他方式进行哈希处理的密码,那么您的用户将无法通过其密码登录。
如果您从另一个Magento迁移密码,那么我想没有问题。