Maison développement back-end tutoriel php Comment implémenter la fonction de réinitialisation du mot de passe Laravel

Comment implémenter la fonction de réinitialisation du mot de passe Laravel

Feb 24, 2018 am 09:24 AM
laravel 功能 实现

Vous souhaitez implémenter cette fonctionnalité rapidement ? Exécutez simplement php artisan make:auth sous l'application Laravel nouvellement installée (si vous avez déjà exécuté cette commande, vous pouvez l'ignorer), puis visitez http://your-app.dev/register ou autre attribué à l'application dans le URL du navigateur, cette commande générera tout le nécessaire pour la connexion et l'enregistrement de l'utilisateur, y compris la réinitialisation du mot de passe !

La plupart des applications Web offrent la fonction de réinitialisation des mots de passe des utilisateurs, et Laravel ne fait pas exception. Laravel fournit des méthodes pratiques pour envoyer des liens de réinitialisation de mot de passe et implémenter une logique de réinitialisation de mot de passe sans que vous ayez à répéter l'implémentation vous-même dans chaque application.

Remarque : Avant d'utiliser la fonction de réinitialisation de mot de passe fournie par Laravel, le modèle User doit utiliser le trait IlluminateNotificationsNotifiable.

Lié à la base de données

Avant de commencer, vérifiez que le modèle AppUser implémente le contrat IlluminateContractsAuthCanResetPassword. Bien entendu, le modèle AppUser de Laravel implémente déjà cette interface et utilise le trait IlluminateAuthPasswordsCanResetPassword pour inclure les méthodes nécessaires à l'implémentation de cette interface.

Générer la migration de la table des jetons de réinitialisation

Ensuite, la table utilisée pour stocker les jetons de réinitialisation de mot de passe doit déjà être créée avec la migration de cette table, qui est stockée dans le répertoire base de données/migrations. Il ne vous reste donc plus qu'à lancer la migration :

php artisan migrate

Cette table est le password_resets :

Routes

Laravel est livré avec les contrôleurs AuthForgotPasswordController et AuthResetPasswordController (ces deux classes de contrôleurs seront automatiquement générées via la commande php artisan make:auth), qui sont utilisées respectivement pour envoyer des e-mails de lien de réinitialisation de mot de passe et réinitialiser les mots de passe des utilisateurs. Les routes nécessaires à la réinitialisation du mot de passe ont été automatiquement générées via la commande make:auth :

php artisan make:auth

La route correspondante est définie dans la méthode auth d'IlluminateRoutingRouter :

Vue

Comme le routage, les fichiers de vue requis pour réinitialiser le mot de passe sont également générés via la commande make:auth. Ces fichiers de vue se trouvent dans

<.> Dans le répertoire resources/views/auth/passwords, vous pouvez modifier les fichiers générés selon vos besoins.

Réinitialiser le mot de passe

Après avoir défini l'itinéraire et l'affichage de réinitialisation du mot de passe utilisateur, il vous suffit d'accéder à cet itinéraire d'entrée via /password/reset dans le navigateur. Le ForgotPasswordController fourni avec le framework contient déjà la logique d'envoi d'e-mails de lien de réinitialisation de mot de passe, et le ResetPasswordController contient la logique de réinitialisation des mots de passe des utilisateurs :

Entrez l'e-mail d'inscription et cliquez sur Envoyer la réinitialisation du mot de passe Si vous définissez le lien, un lien de réinitialisation du mot de passe sera envoyé à l'adresse e-mail :


Lorsque vous ouvrirez l'adresse e-mail, vous recevrez un e-mail de réinitialisation du mot de passe comme celui-ci :

Cliquez sur le bouton de réinitialisation du mot de passe pour accéder à la page de réinitialisation du mot de passe :

Vous pouvez réinitialisez votre mot de passe après avoir rempli le formulaire et l'avoir soumis.

Une fois le mot de passe réinitialisé, l'utilisateur se connectera automatiquement à l'application et sera redirigé vers /home. Vous pouvez personnaliser le lien de redirection après une réinitialisation réussie du mot de passe en définissant l'attribut redirectTo de ResetPasswordController :

protected $redirectTo = '/dashboard';

Remarque : par défaut, la réinitialisation du mot de passe Le jeton est valable une heure. Vous pouvez modifier la durée de validité en modifiant l'option expire dans le fichier config/auth.php.

Personnalisé

Authentification personnalisée Garde

Dans le fichier de configuration auth.php, plusieurs « gardes » peuvent être configurés pour implémenter une authentification indépendante basée sur des tables multi-utilisateurs pour l'authentification. , vous pouvez utiliser la garde de votre choix en remplaçant la méthode guard sur le contrôleur ResetPasswordController intégré, qui renverra une instance de garde :

use Illuminate\Support\Facades\Auth;
protected function guard()
{
 return Auth::guard('guard-name');
}
Copier après la connexion
Courtier de mot de passe personnalisé

Dans la configuration auth.php, vous pouvez configurer plusieurs mots de passe à utiliser pour réinitialiser le courtier de mots de passe de plusieurs tables utilisateur. De même, vous pouvez utiliser votre méthode de courtier en remplaçant les contrôleurs intégrés ForgotPasswordController et ResetPasswordController Selected :

utilisez IlluminateSupportFacadesPassword ;

E-mail de réinitialisation de mot de passe personnalisé
/**
 * 获取密码重置期间所使用的broker.
 *
 * @return PasswordBroker
 * @translator laravelacademy.org
 */
protected function broker()
{
  return Password::broker('name');
}
Copier après la connexion

Vous pouvez facilement modifier la notification qui envoie le lien de réinitialisation de mot de passe à l'utilisateur. La classe implémente un e-mail de réinitialisation de mot de passe personnalisé pour implémenter cela. fonction, vous devez remplacer la méthode sendPasswordResetNotification sur le modèle User. Dans cette méthode, vous pouvez utiliser n'importe quelle classe de notification que vous souhaitez envoyer des notifications. Le premier paramètre reçu par cette méthode est la réinitialisation du mot de passe $token :

.

Recommandations associées :
/**
 * 发送密码重置通知.
 *
 * @param string $token
 * @return void
 */
public function sendPasswordResetNotification($token)
{
  $this->notify(new ResetPasswordNotification($token));
}
Copier après la connexion


Méthode de réinitialisation du mot de passe root MySQL oublié

Trois étapes pour réinitialiser le mot de passe root MySQL

Méthode de réinitialisation du mot de passe de l'utilisateur racine de la base de données MySQL oubliée_MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Apr 01, 2025 am 07:09 AM

Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Apr 01, 2025 am 07:45 AM

L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...

Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Apr 01, 2025 am 09:09 AM

Connexion de la base de données des locataires personnalisés dans le package d'extension multi-locataire Laravel Stancl / location Lors de la construction d'applications multi-locataires à l'aide du package d'extension multi-locataire Laravel Stancl / location, ...

Laravel Eloquent Orm dans Bangla Partial Model Search) Laravel Eloquent Orm dans Bangla Partial Model Search) Apr 08, 2025 pm 02:06 PM

Laravelelognent Model Retrieval: Faconttement l'obtention de données de base de données Eloquentorm fournit un moyen concis et facile à comprendre pour faire fonctionner la base de données. Cet article présentera en détail diverses techniques de recherche de modèles éloquentes pour vous aider à obtenir efficacement les données de la base de données. 1. Obtenez tous les enregistrements. Utilisez la méthode All () pour obtenir tous les enregistrements dans la table de base de données: usApp \ Modèles \ Post; $ poters = post :: all (); Cela rendra une collection. Vous pouvez accéder aux données à l'aide de Foreach Loop ou d'autres méthodes de collecte: ForEach ($ PostsAs $ POST) {echo $ post->

Quel est le but de PowerToys? Quel est le but de PowerToys? Apr 03, 2025 am 12:10 AM

PowerToys est une collection gratuite d'outils lancés par Microsoft pour améliorer la productivité et le contrôle du système pour les utilisateurs de Windows. Il fournit des fonctionnalités via des modules autonomes tels que la disposition des fenêtres de gestion des fraîches et les fichiers de renommage par lots PowerRename, ce qui rend le flux de travail des utilisateurs plus fluide.

See all articles