Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Réinitialisation mot de passe Laravel
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Réinitialisation mot de passe Laravel

L'Équipe Alphorm Par L'Équipe Alphorm 9 janvier 2025
Partager
Partager

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.

Table de matière
ForgotController : Réinitialisation LaravelVue forgot.blade.php pour mot de passeLaravel c'est top !Modifier vues login et register LaravelRoutes web.php pour réinitialisation mot de passeFAQConclusion

Formation Laravel : Le Guide Complet du Débutant

Initiez-vous à Laravel et réalisez votre première application en toute confiance.

Découvrir cette formation
Schéma de réinitialisation de mot de passe avec Laravel

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

				
					
 <?php

namespace App\Http\Controllers;

 use Illuminate\Http\Request;

 class ForgotController extends Controller
 {
     //
     public function index() // formulaire d'oubli de mot de passe
     {
         $data = [
         'title' => $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')
<div class="row">
<div class="col-lg-3">
@include('includes/sidebar')
</div>
<!-- /.col-lg-3 -->
<div class="col-lg-9">
@if(session('success'))
<div class="alert alert-success">{{session('success')}}</div>
@endif
@if(session('error'))
<div class="alert alert-danger">{{session('error')}}</div>
@endif
<div class="card mt-4">
<div class="card-body">
<h2 id="laravel-cest-top" class="rb-heading-index-3 card-title"><a href="" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">Laravel c'est top !</a></h2>
{{--   <p class="card-text">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!</p> --}}
<span class="auhtor">Par <a href="" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">Hamid</a></span> <br>
<span class="time">Il y'a 1 heure</span>
</div>
</div>
<!-- /.card -->
<div class="card card-outline-secondary my-4">
<div class="card-header">
J'ai oublie mon mot de passe        </div>
<form action="{{route('post.forgot')}}" method="post">
@csrf
<div class="card-body">
<div class="mb-3 row">
<label for="staticEmail" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text"  class="form-control" name="email" id="staticEmail" >
@error('email')
<div class="error">{{$message}}</div>
@enderror
</div>
</div>
</div>
<button class="btn btn-primary">Envoyer </button>
</div>
</form>
<p><a href="{{route(&#039;forgot&#039;)}}" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">Mot de passe oublie</a></p>
<p><a href="{{route(&#039;registe&#039;)}}" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">J'ai pas de compte </a></p>
</div>
<!-- /.card -->
</div>
<!-- /.col-lg-9 -->
</div>
@stop

				
			

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 :

				
					
 <p><a href="{{route(&#039;forgot&#039;)}}" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">Mot de passe oublie</a></p>
<p><a href="{{route(&#039;registe&#039;)}}" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">J'ai pas de compte </a></p>

				
			

Pour le fichier register.blade.php ajoutez le lien suivant

				
					
 <p><a href="{{route(&#039;login&#039;)}}" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer"> J'ai deja un compte </a></p>

				
			

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 :
Formulaire de réinitialisation de mot de passe Laravel
  • Si les champs est vide
Formulaire Laravel pour réinitialiser le mot de passe
Erreur Courante : Ne pas valider correctement l’email : Assurez-vous que l’email est bien formaté et qu’il existe dans la base de données. Si ce n’est pas le cas, un message d’erreur approprié doit être affiché.

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.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment créer un ForgotController dans Laravel ?
Pour créer un ForgotController dans Laravel, vous devez définir deux méthodes principales : index() et store(). La méthode index() affiche le formulaire pour entrer l’email de réinitialisation, tandis que la méthode store() traite la soumission de cet email. Elle vérifie si l’email existe dans la base de données avant d’envoyer un lien de réinitialisation. Ce processus assure une gestion sécurisée de la réinitialisation des mots de passe.
Comment fonctionne la vue forgot.blade.php ?
La vue forgot.blade.php est conçue pour permettre aux utilisateurs de saisir leur adresse email afin de recevoir un lien de réinitialisation de mot de passe. Elle inclut un formulaire avec un champ pour l’email et affiche des messages d’erreur si l’email n’est pas valide ou n’existe pas. Un bouton ‘Envoyer’ permet de soumettre le formulaire pour déclencher le processus de réinitialisation.
Comment ajouter des liens dans login.blade.php et register.blade.php ?
Dans login.blade.php, vous devez intégrer des liens vers la page de réinitialisation de mot de passe et la page d’inscription pour guider les utilisateurs selon leurs besoins. Dans register.blade.php, ajoutez un lien vers la page de connexion pour ceux qui possèdent déjà un compte. Ces ajouts facilitent la navigation entre les différentes fonctionnalités pour les utilisateurs.
Quelles sont les routes nécessaires dans web.php pour l'oubli de mot de passe ?
Dans le fichier web.php, définissez deux routes pour gérer l’oubli de mot de passe : get(‘forgot’) pour afficher le formulaire d’oubli de mot de passe et post(‘forgot’) pour traiter la demande d’oubli. Ces routes permettent de gérer l’affichage et le traitement des demandes de réinitialisation de manière efficace.
Quels sont les tests à réaliser pour vérifier l'implémentation ?
Pour vérifier l’implémentation de l’oubli de mot de passe, testez les cas où l’email est incorrectement formaté ou inexistant, et où le champ email est vide. Assurez-vous que des messages d’erreur appropriés s’affichent dans ces situations et que le lien de réinitialisation est correctement envoyé lorsque l’email est valide.

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 ?

ÉTIQUETÉ : Laravel
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Réinitialisation mot de passe Laravel

© Alphorm - Tous droits réservés