ForgotPasswordController
extends AbstractController
in package
Réinitialisation du mot de passe par e-mail.
Parcours en deux temps : demande de réinitialisation (envoi d'un lien contenant un jeton aléatoire stocké sur l'utilisateur), puis saisie du nouveau mot de passe depuis ce lien. Le jeton est effacé dès qu'il a été consommé.
Table of Contents
Properties
- $emailService : MailerService
- $entityManager : EntityManagerInterface
- $userRepository : UserRepository
Methods
- __construct() : mixed
- forgotPassword() : RedirectResponse|Response
- Traite la demande de réinitialisation de mot de passe.
- reset() : RedirectResponse|Response
- Définit un nouveau mot de passe à partir du jeton de réinitialisation.
Properties
$emailService
private
MailerService
$emailService
$entityManager
private
EntityManagerInterface
$entityManager
$userRepository
private
UserRepository
$userRepository
Methods
__construct()
public
__construct(UserRepository $userRepository, MailerService $emailService, EntityManagerInterface $entityManager) : mixed
Parameters
- $userRepository : UserRepository
-
Recherche des comptes par e-mail ou par jeton.
- $emailService : MailerService
-
Envoi de l'e-mail de réinitialisation.
- $entityManager : EntityManagerInterface
-
Gestionnaire d'entités Doctrine.
forgotPassword()
Traite la demande de réinitialisation de mot de passe.
public
forgotPassword(Request $request, EntityManagerInterface $entityManager) : RedirectResponse|Response
Si l'adresse saisie correspond à un compte, un jeton aléatoire de 16 octets est généré, enregistré sur l'utilisateur et envoyé par e-mail. Sinon, un message d'erreur signale qu'aucun compte ne correspond.
Route : /forgot-password, nom forgot_password.
Parameters
- $request : Request
-
Requête portant le formulaire ForgotPasswordType.
- $entityManager : EntityManagerInterface
-
Gestionnaire d'entités Doctrine.
Attributes
- #[Route]
- '/forgot-password'
- $name: "forgot_password"
Return values
RedirectResponse|Response —Redirection vers la connexion si l'e-mail a été
envoyé, formulaire reset_password/forgot_password.html.twig sinon.
reset()
Définit un nouveau mot de passe à partir du jeton de réinitialisation.
public
reset(Request $request, string $token, UserPasswordHasherInterface $userPasswordHasher) : RedirectResponse|Response
Le compte est retrouvé par son jeton ; le nouveau mot de passe est haché, puis le jeton est effacé afin que le lien ne puisse pas être rejoué.
Route : /reset-password/{token}, nom reset_password.
Parameters
- $request : Request
-
Requête portant le formulaire ResetPasswordFormType.
- $token : string
-
Jeton de réinitialisation issu de l'URL.
- $userPasswordHasher : UserPasswordHasherInterface
-
Hachage du nouveau mot de passe.
Attributes
- #[Route]
- '/reset-password/{token}'
- $name: 'reset_password'
Return values
RedirectResponse|Response —Redirection vers la connexion après succès,
formulaire reset_password/reset.html.twig sinon.