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 de mot de passe avec 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 de mot de passe avec Laravel

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

La gestion de la réinitialisation de mot de passe est souvent un défi pour les développeurs.

Une mauvaise implémentation peut conduire à des failles de sécurité, exposant les données sensibles des utilisateurs.

Cet article explore comment configurer un système de réinitialisation de mot de passe sécurisé avec Laravel, en mettant l’accent sur les meilleures pratiques.

Table de matière
Configurer RestController LaravelCréer vue reset.blade.php sécuriséeLaravel c'est top !Définir routes pour réinitialisationTester emails avec MailtrapFAQConclusion

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 réinitialisation mot de passe Laravel

Alors, passons maintenant à la mise en place de la logique pour le formulaire de réinitialisation de mot de passe. C’est parti

Configurer RestController Laravel

Le contrôleur RestController est responsable de la gestion du processus de réinitialisation du mot de passe. Il permet d’afficher le formulaire de réinitialisation et de traiter la soumission du formulaire pour mettre à jour le mot de passe de l’utilisateur.

Affichage du formulaire de réinitialisation

La première étape consiste à afficher le formulaire permettant à l’utilisateur de réinitialiser son mot de passe. Pour ce faire, vous devez vérifier la validité du token de réinitialisation passé dans l’URL. Ce token est généralement généré lors de la demande de réinitialisation et est stocké temporairement dans la base de données. Lorsque l’utilisateur accède à la page de réinitialisation, le contrôleur RestController vérifie si le token est valide avant d’afficher le formulaire.

Voici un exemple de code pour afficher le formulaire :

				
					
 <?php

namespace App\Http\Controllers;

 use Illuminate\Http\Request;
 use DB;

 class RestController extends Controller
 {
     //
     public function index(string $token) // formulaire de réinitialisation de mot de passe
     {
         $password_reset = DB::table('password_reset_tokens')->where('token', $token)->first();
         abort_if(!$password_reset, 403);
         $data = [
         'title' => $description = 'Réinitialisation de mot de passe - ' . config('app.name'),
         'description' => $description,
         'password_reset' => $password_reset,
         ];
         return view('auth.reset', $data);
     }
 }

				
			

Explication du Code :

  • Vous récupérez le token de réinitialisation passé dans l’URL et vous le cherchez dans la base de données.
  • Si le token est trouvé, vous affichez le formulaire de réinitialisation. Sinon, une erreur est générée.
  • Vous passez les données nécessaires (comme le token) à la vue auth.reset.
Infos : Lors de la mise en œuvre du contrôleur RestController, il est essentiel de prendre en compte les meilleures pratiques de sécurité pour protéger les données sensibles de vos utilisateurs et assurer une expérience utilisateur fluide

Créer vue reset.blade.php sécurisée

La vue reset.blade.php contient le formulaire HTML permettant à l’utilisateur de réinitialiser son mot de passe. Elle inclut des champs pour saisir l’email, le nouveau mot de passe, et la confirmation du mot de passe. Le token de réinitialisation est également inclus dans un champ caché pour le transmettre au contrôleur lors de la soumission du formulaire.

Voici un exemple de code pour la vue :

				
					
 @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-4 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">
Réinitialisation de mon mot de passe
</div>
<form action="{{route('post.forgot')}}" method="post">
@csrf
<input type="hidden" name="token" value="{{$password_reset->token}}">
<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 class="mb-3 row">
<label for="staticEmail" class="col-sm-2 col-form-label">Mot de passe</label>
<div class="col-sm-10">
<input type="Password"  class="form-control" name="password" id="staticEmail" >
@error('password')
<div class="error">{{$message}}</div>
@enderror
</div>
</div>
<div class="mb-3 row">
<label for="staticEmail" class="col-sm-2 col-form-label">Confirmer le mot de passe</label>
<div class="col-sm-10">
<input type="Password"  class="form-control" name="password_confirmation" id="staticEmail" >
@error('password_confirmation')
<div class="error">{{$message}}</div>
@enderror
</div>
</div>
</div>
<button class="btn btn-primary">Envoyer </button>
</div>
</form>
</div>
<!-- /.card -->
</div>
<!-- /.col-lg-9 -->
</div>
@stop

				
			

Explication du Code :

  • Affichage des messages :Si des messages de succès ou d’erreur existent, ils sont affichés en haut de la page pour vous informer du statut de la réinitialisation.
  • Formulaire de réinitialisation :Ce formulaire contient les champs nécessaires pour saisir l’email, le mot de passe, et la confirmation du mot de passe. Le token est transmis en tant que champ caché pour être utilisé lors de la soumission du formulaire.
  • Gestion des erreurs :Si des erreurs de validation sont présentes, elles sont affichées sous chaque champ.

Définir routes pour réinitialisation

Les routes sont utilisées pour lier les URL aux actions du contrôleur. Pour gérer la réinitialisation de mot de passe, vous devez définir deux routes : une pour afficher le formulaire et une pour traiter la soumission du formulaire.

Voici comment vous pouvez définir les routes :

				
					
 Route::get('reset/{token}', 'RestController@index')->name('reset');

				
			

Tester emails avec Mailtrap

Une fois que vous avez configuré tout cela, vous pouvez tester l’envoi d’email en suivant ces étapes :

  • Accédez à la page de réinitialisation de mot de passe :Entrez un email valide dans le formulaire.
Formulaire email mot de passe oublié Laravel
  • Vérifiez votre boîte Mailtrap :Connectez-vous à Mailtrap et vérifiez que le message est bien envoyé.

Voici l’affichage de message sur Mailtrap

Message de réinitialisation mot de passe
  • Cliquez sur le lien de réinitialisation :Testez que le lien redirige correctement l’utilisateur vers la page de réinitialisation.

Voici la page d’réinitialisation

Formulaire réinitialisation mot de passe Laravel

Vous avez maintenant une fonctionnalité complète pour permettre aux utilisateurs de réinitialiser leur mot de passe en toute sécurité. Cette fonctionnalité inclut l’envoi d’un lien de réinitialisation par email, la génération d’un token unique, et l’utilisation de Mailtrap pour tester l’envoi des mails en toute sécurité.

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 configurer le contrôleur pour la réinitialisation de mot de passe ?
Le contrôleur RestController en Laravel gère l’affichage et la soumission du formulaire de réinitialisation de mot de passe. Il vérifie la validité du token de réinitialisation avant d’afficher le formulaire. Si le token est valide, le formulaire est affiché pour permettre à l’utilisateur de saisir un nouveau mot de passe. Cette approche assure que seuls les utilisateurs autorisés peuvent accéder à la réinitialisation.
Quel est le rôle du token dans la réinitialisation de mot de passe ?
Le token de réinitialisation est un élément clé de la sécurité dans le processus de réinitialisation de mot de passe. Il est généré lors de la demande de réinitialisation et stocké temporairement. Lorsque l’utilisateur tente de réinitialiser son mot de passe, le contrôleur vérifie la validité du token. Cela empêche les accès non autorisés et garantit que seule la personne ayant demandé la réinitialisation peut changer le mot de passe.
Comment fonctionne la vue reset.blade.php dans Laravel ?
La vue reset.blade.php est responsable de l’affichage du formulaire de réinitialisation de mot de passe. Elle contient des champs pour l’adresse email, le nouveau mot de passe et sa confirmation. Le token de réinitialisation est inclus dans un champ caché pour être transmis lors de la soumission. Ce formulaire assure que toutes les informations nécessaires sont collectées et vérifiées avant de permettre la réinitialisation du mot de passe.
Comment tester l'envoi d'email avec Mailtrap ?
Mailtrap est un outil utilisé pour tester l’envoi d’emails sans les envoyer réellement à des utilisateurs. Après avoir configuré la réinitialisation de mot de passe, vous pouvez envoyer un email de test à une adresse sur Mailtrap. Ensuite, connectez-vous à votre compte Mailtrap pour vérifier que l’email est arrivé. Cela permet de s’assurer que le processus d’envoi fonctionne correctement avant de le déployer en production.
Quelles sont les meilleures pratiques de sécurité pour la réinitialisation de mot de passe ?
Pour sécuriser le processus de réinitialisation de mot de passe, il est crucial de vérifier la validité du token de réinitialisation, de sécuriser les données sensibles et d’utiliser HTTPS pour toutes les communications. Assurez-vous aussi que les tokens de réinitialisation ont une durée de vie limitée et sont générés de manière aléatoire. Ces pratiques aident à prévenir les attaques potentielles et à protéger les données des utilisateurs.

Conclusion

La réinitialisation de mot de passe est un composant crucial de la sécurité utilisateur. Quelles autres fonctionnalités de sécurité envisagez-vous d’implémenter dans votre application 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 de mot de passe avec Laravel

© Alphorm - Tous droits réservés