- Ajout du hashage du mot de passe lors de l'inscription.

This commit is contained in:
2025-01-29 10:42:03 +01:00
parent 45362ae9d9
commit d576c980d3
4 changed files with 210 additions and 9 deletions

View File

@ -7,31 +7,39 @@ use App\Form\RegistrationType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;
use Doctrine\ORM\EntityManagerInterface;
class RegistrationController extends AbstractController
{
private $entityManager;
private $passwordHasher; // Correction du nom de la variable
public function __construct(EntityManagerInterface $entityManager) // Injection du service EntityManagerInterface
public function __construct(EntityManagerInterface $entityManager, UserPasswordHasherInterface $passwordHasher) // Correction ici
{
$this->entityManager = $entityManager;
$this->passwordHasher = $passwordHasher;
}
#[Route('/registration', name: 'app_registration')]
public function register (Request $request): Response
public function register(Request $request): Response
{
$user = new User();
$form = $this->createForm(RegistrationType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// Utilisation de l'EntityManager injecté
// Hacher le mot de passe avant de persister l'utilisateur
$plainPassword = $user->getPassword(); // Récupération du mot de passe brut
$hashedPassword = $this->passwordHasher->hashPassword($user, $plainPassword); // Hachage du mot de passe
$user->setPassword($hashedPassword); // Remplacer le mot de passe brut par le mot de passe haché
// Persist de l'utilisateur haché
$this->entityManager->persist($user);
$this->entityManager->flush();
// Message flash de succès
$this->addFlash('success', 'Votre compte a été créé avec succès !');
return $this->redirectToRoute('home');
}
@ -40,5 +48,4 @@ class RegistrationController extends AbstractController
'form' => $form->createView(),
]);
}
}