La gestion des mots de passe oubliés est un défi pour de nombreux utilisateurs.
Sans un système efficace, cela peut entraîner une frustration et un accès limité aux services.
Découvrez comment mettre en place un système de réinitialisation de mot de passe efficace dans Laravel.
Initiez-vous à Laravel et réalisez votre première application en toute confiance.
ForgotController : Réinitialisation Laravel
Pour implémenter la fonctionnalité de réinitialisation de mot de passe, vous devez créer un contrôleur nommé ForgotController . Ce contrôleur contiendra deux méthodes principales :
- index() :Cette méthode affiche un formulaire où l’utilisateur pourra entrer son email pour demander un lien de réinitialisation de mot de passe.
- store() :Cette méthode gère la soumission de l’email, valide les données, vérifie l’existence de l’email dans la base de données, et envoie un lien de réinitialisation si toutes les conditions sont remplies.
Voici le code du contrôleur
$description = 'Oubli de mot de passe - ' . config('app.name'),
'description' => $description,
];
return view('auth.forgot', $data);
}
public function store() // vérification des data et envoi de lien par mail
{
request()->validate([
'email' => 'required|email|exists:users',
]);
}
}
Voici l’explication :
- La méthode index() charge la vue qui contient le formulaire pour l’oubli de mot de passe.
- La méthode store() valide l’email soumis par l’utilisateur et le compare avec ceux de la base de données. Un lien de réinitialisation doit être envoyé si l’email est valide.
Vue forgot.blade.php pour mot de passe
Voici la vue forgot.blade.php où l’utilisateur pourra entrer son adresse email pour recevoir un lien de réinitialisation du mot de passe.
@extends('layouts.main')
@section('content')
@include('includes/sidebar')
@if(session('success'))
{{session('success')}}
@endif
@if(session('error'))
{{session('error')}}
@endif
Laravel c'est top !
{{-- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente dicta fugit fugiat hic aliquam itaque facere, soluta. Totam id dolores, sint aperiam sequi pariatur praesentium animi perspiciatis molestias iure, ducimus!
--}}
Par Hamid
Il y'a 1 heure
J'ai oublie mon mot de passe
Voici l’explication :
- Ce formulaire demande à l’utilisateur de saisir son adresse email pour réinitialiser son mot de passe.
- Des messages d’erreur sont affichés si l’email n’est pas valide ou si l’email ne correspond à aucun utilisateur.
- Un bouton « Envoyer » permet à l’utilisateur de soumettre l’email.
Modifier vues login et register Laravel
Dans les vues login.blade.php et register.blade.php , vous allez ajouter des liens pour permettre à l’utilisateur d’accéder à la page de réinitialisation de mot de passe ou de s’inscrire si nécessaire.
Dans le fichier login.blade.php ajoutez des liens suivants :
Pour le fichier register.blade.php ajoutez le lien suivant
Ces liens permettent à l’utilisateur de :
- Accéder à la page de réinitialisation du mot de passe s’il a oublié son mot de passe.
- Se rendre sur la page d’inscription s’il n’a pas encore de compte.
Routes web.php pour réinitialisation mot de passe
Dans le fichier routes/web.php , vous devez définir deux routes pour la gestion de l’oubli de mot de passe :
Route::get('forgot', 'ForgotController@index')->name('forgot');
Route::post('forgot', 'ForgotController@store')->name('post.forgot');
Voici l’explication :
- La route get(‘forgot’) affiche le formulaire d’oubli de mot de passe.
- La route post(‘forgot’) traite la demande d’oubli de mot de passe en validant l’email et en envoyant le lien de réinitialisation.
Afin de vérifier que l’implémentation de la fonctionnalité d’oubli de mot de passe fonctionne correctement, vous devez tester plusieurs cas de figure. Voici les étapes et les tests à réaliser.
- SI l’email soumis n’est pas au bon format (par exemple, invalid-email) voici affichage de la page :
- Si les champs est vide
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment créer un ForgotController dans Laravel ?
Comment fonctionne la vue forgot.blade.php ?
Comment ajouter des liens dans login.blade.php et register.blade.php ?
Quelles sont les routes nécessaires dans web.php pour l'oubli de mot de passe ?
Quels sont les tests à réaliser pour vérifier l'implémentation ?
Conclusion
En mettant en place ces fonctionnalités, vous facilitez la gestion des comptes pour vos utilisateurs. Quelles autres fonctionnalités aimeriez-vous explorer pour améliorer l’expérience utilisateur dans Laravel ?