justweb Posted November 27, 2011 Share Posted November 27, 2011 Bonjour, Je souhaite surcharger le controlleur AuthController afin d'ajouter des nouveaux messages d'erreurs. Actuellement, lorsqu'un utilisateur renseigne son email et son password dans dans le formulaire d'identification, si il y a une erreur sur l'email (adresse email inexistante mais sans erreurs) ou le mot de passe, il y a un seul message d'erreur : échec lors de l'authentification. L'utilisateur ne sait pas si il a utilisé le bon email ou tapé un mauvais mot de passe. J'aimerais pouvoir afficher 2 nouveaux messages d'erreur : adresse email correcte mais mauvais mot de passe adresse email n'existe pas dans notre base de données Pour cela, je pense qu'il faut modifier le controlleur AuthController vers la ligne 243 : $customer = new Customer(); $authentication = $customer->getByEmail(trim($email), trim($passwd)); if (!$authentication OR !$customer->id) { /* Handle brute force attacks */ sleep(1); $this->errors[] = Tools::displayError('Authentication failed'); } Avez vous la solution ? merci Link to comment Share on other sites More sharing options...
justweb Posted November 30, 2011 Author Share Posted November 30, 2011 up... Link to comment Share on other sites More sharing options...
Sbizz Posted November 30, 2011 Share Posted November 30, 2011 Bonjour, Vous pouvez en effet voir cela. En premier lieu, il va falloir récupérer l'ID du customer. On utilisera donc la même fonction mais sans mettre le password. $authentication = $customer->getByEmail(trim($email)); Ici, la requête va chercher le customer qui possède cette adresse. Si il n'est pas trouvé, la fonction renvoie FALSE et $customer->id ne vaut rien. Ensuite, il suffit d'utiliser la fonction statique : checkPassword qui prend en paramètre l'id du customer et le password crypté. Customer::checkPassword($customer->id, Tools::encrypt($passwd)); Renvoie TRUE ou FALSE. Link to comment Share on other sites More sharing options...
justweb Posted December 1, 2011 Author Share Posted December 1, 2011 je vais tester tout ça. Je reviendrai poster mes modif... merci Link to comment Share on other sites More sharing options...
NickHaldene Posted January 31, 2012 Share Posted January 31, 2012 Bonjour, Vous pouvez en effet voir cela. En premier lieu, il va falloir récupérer l'ID du customer. On utilisera donc la même fonction mais sans mettre le password. $authentication = $customer->getByEmail(trim($email)); Ici, la requête va chercher le customer qui possède cette adresse. Si il n'est pas trouvé, la fonction renvoie FALSE et $customer->id ne vaut rien. Ensuite, il suffit d'utiliser la fonction statique : checkPassword qui prend en paramètre l'id du customer et le password crypté. Customer::checkPassword($customer->id, Tools::encrypt($passwd)); Renvoie TRUE ou FALSE. Solution tout ce qu'il y a de plus fonctionnelle, merci ! Link to comment Share on other sites More sharing options...
Prestaspirit Posted February 8, 2012 Share Posted February 8, 2012 Bonjour, Je tiens juste a préciser pour ceux qui souhaite apporter cette modification que si le comportement natif de Prestashop n'inclus pas un message d'erreur différent pour chacune de ces 2 erreurs, c'est pas pour rien, dites vous bien que vous donnez une informations supplémentaire a vos clients ce qui peux les arranger certes, mais vous donnez aussi une information importante à toutes les personnes malveillantes qui souhaiterais pirater un de vos comptes clients !!! Après à chacun de faire sont choix, je voulais juste le préciser. Link to comment Share on other sites More sharing options...
coeos.pro Posted February 9, 2012 Share Posted February 9, 2012 Prestaspirit n'a pas tord et je rajouterais qu'une personne mal intentionnée (pas forcément un pirate) peut renouveler un mot de passe d'un client de la boutique en connaissant son email, bon ensuite la probabilité est très faible mais il y a des cons partout. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now