Un bundle Symfony léger et autonome pour gérer la réinitialisation de mot de passe. Fournit une solution complète avec interface utilisateur intégrée, sans dépendances frontend supplémentaires.
composer require ayto/reset-password-bundle
config/bundles.php :return [
// ...
Ayto\ResetPasswordBundle\ResetPasswordBundle::class => ['all' => true],
];
config/packages/reset_password.yaml :reset_password:
from_email: 'no-reply@example.com' # Email utilisé pour envoyer les emails de réinitialisation
token_lifetime: 3600 # Durée de validité du token en secondes (1 heure par défaut)
user_class: App\Entity\User # Votre classe User qui implémente ResetPasswordUserInterface
use Ayto\ResetPasswordBundle\Model\ResetPasswordUserInterface;
class User implements ResetPasswordUserInterface
{
private ?string $resetToken = null;
private ?\DateTimeInterface $resetTokenExpiresAt = null;
public function getResetPasswordToken(): ?string
{
return $this->resetToken;
}
public function setResetPasswordToken(?string $token): void
{
$this->resetToken = $token;
}
public function getResetPasswordTokenExpiresAt(): ?\DateTimeInterface
{
return $this->resetTokenExpiresAt;
}
public function setResetPasswordTokenExpiresAt(?\DateTimeInterface $expiresAt): void
{
$this->resetTokenExpiresAt = $expiresAt;
}
public function getEmail(): string
{
return $this->email;
}
}
config/routes.yaml :reset_password:
resource: '@ResetPasswordBundle/Resources/config/routes.yaml'
Vous pouvez surcharger les templates en créant les fichiers suivants dans votre application :
templates/bundles/ResetPasswordBundle/reset_password/request.html.twigtemplates/bundles/ResetPasswordBundle/reset_password/reset.html.twigtemplates/bundles/ResetPasswordBundle/emails/reset_password.html.twigLes styles CSS sont inclus directement dans les templates et peuvent être surchargés en modifiant les templates ou en ajoutant vos propres styles.
Les contributions sont les bienvenues ! Pour contribuer :
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Distribué sous la licence MIT. Voir LICENSE pour plus d'informations.
How can I help you explore Laravel packages today?