public function lostPassword() { $email = $_POST['email']; // je vérifie si l'email existe en DB $usersManager = new \W\Manager\UserManager(); $emailExists = $usersManager->emailExists($email); if ($emailExists) { // je récupère l'id de l'utilisateur et son nom $currentUser = $usersManager->getUserByUsernameOrEmail($email); $idUser = $currentUser['id']; $nomUser = $currentUser['nom']; // je crée un token (une chaine de 32 caractères aléatoires) $token = \W\Security\StringUtils::randomString(32); // j'insère en DB le token et l'id de l'utilisateur $tokenManager = new \Manager\TokenManager(); $tokenManager->insert(['token' => $token, 'id_users' => $idUser]); // j'envoi un email avec un lien // et donc j'ai une route en GET /login/lostpassword/[:token] $usersManager = new \Manager\UserManager(); $this->sendMail($email, $token, $nomUser); } $this->redirectToRoute('login'); }