J'utilise magento version 1.9.0.1.La fonction de mot de passe de hachage a-t-elle changé dans magento? Si oui, à quoi?
Pour passer à des fins magento Je dois créer une fonction de connexion pour les clients en dehors du cadre de magento.
J'ai regardé la méthode de hachage utilise magento et valider les mots de passe, mais la méthode ne semble pas fonctionner plus.
Ci-dessous le code que j'utilise pour valider une connexion utilisateur en dehors magento. Ce code est juste pour essayer la preuve de concept et n'est pas utilisé dans un environnement en direct pour des raisons évidentes :).
function checkPassword($entity,$passwordInput){
$query = mysql_query("SELECT value FROM customer_entity_varchar WHERE entity_id = '$entity' AND attribute_id = '12' LIMIT 1");
$fetch = mysql_fetch_object($query);
$fetch_data = explode(':',$fetch->value);
$hashed_password = $fetch_data['0'];
$salt = $fetch_data['1'];
$hashInput = md5($passwordInput . $salt);
if($hashInput == $hashed_password){
return 'Success';
}
else{
return 'Failure';
}
}
$entity
est le entity_id passé après validation de courrier électronique,
$passwordInput
est le mot de passe entré dans le formulaire de connexion.
Renvoie l'échec. Ce qui ne me surprend pas parce que quand je reviens $hashInput
et que je compare avec $hashed_password
ce n'est pas la même chose.
la manière a-t-Magento été hashs des mots de passe changé? Ou y a-t-il une erreur dans mon code?
Avez-vous résolu ce problème? Si oui, pouvez-vous envoyer une solution? – smartin
Oui, il y a longtemps, mais le code ci-dessus fonctionne réellement (uniquement pour les clients). J'ai fait une erreur stupide et de fausses données étaient en train d'être postées ($ passwordInput n'était pas correct) Donc, évidemment, il a retourné Failure. N'utilisez pas ce code dans un environnement en direct. – ElFietsbel