Comment changer le mot de passe de l’utilisateur dans Laravel
Pendant que vous travaillez sur l’application, vous souhaiterez peut-être changer rapidement le mot de passe d’un utilisateur pour certaines raisons et vous n’avez pas accès à la base de données. De plus, vous ne voulez pas opter pour un flux de mot de passe oublié. Dans cet article, je vous montre comment changer le mot de passe d’un utilisateur dans Laravel sans accéder à la base de données.
En ce qui concerne Laravel, il est livré avec une table « utilisateurs » par défaut dans la base de données. Cette table est chargée de stocker les détails de l’utilisateur, y compris les informations d’identification telles que l’e-mail et le mot de passe.
Laravel utilise son propre hachage pour crypter le mot de passe. Pour changer le mot de passe, vous devez utiliser les mêmes techniques de hachage pour le cryptage, alors seulement cela fonctionne avec l’authentification Laravel.
Modifier le mot de passe de l’utilisateur à l’aide de la ligne de commande
Il y a plusieurs fonctionnalités Laravel incluses dans son noyau. Lors de l’ installation de Laravel, nous obtenons automatiquement toutes ces fonctionnalités. L’un d’eux est Laravel Tinker, un REPL alimenté par le package PsySH. Laravel Tinker nous permet d’interagir avec la base de données Laravel, les emplois, les événements et plus encore.
Nous pouvons utiliser le Tinker pour changer le mot de passe d’un utilisateur dans Laravel. Tout ce que nous avons besoin de savoir est l’adresse e-mail d’un utilisateur. Donc, pour commencer, ouvrez le terminal dans le répertoire racine de votre projet.
Entrez dans l’environnement Tinker en exécutant la commande :
php artisan tinker
Une fois que vous entrez dans l’environnement Tinker, vous aurez le contrôle sur Eloquent ORM. En utilisant l’ORM, vous pouvez facilement changer le mot de passe de l’utilisateur. Disons que l’e-mail de l’utilisateur est " [email protected] " et que le mot de passe doit être modifié. Dans un premier temps, récupérez cet utilisateur par une instruction :
$user = AppUser::where('email', '[email protected]')->first();
Ensuite, sur l’objet utilisateur, définissez le mot de passe à l’aide de la Hash::make()
méthode. Par exemple, définissez le mot de passe comme « 123456 ». L’énoncé suivant est donc :
$user->password = Hash::make('123456');
Enfin, appelez la méthode save() d’Eloquent ORM comme suit :
$user->save();
Les 3 commandes ci-dessus changeront le mot de passe d’un utilisateur spécifié.
Changer le mot de passe de l’utilisateur dans Laravel en utilisant Route
Vous pouvez également modifier le mot de passe via l’itinéraire. Cependant, il n’est pas recommandé. J’écris juste à ce sujet car c’est aussi la façon de changer le mot de passe. Dans la fonction de rappel de la route, utilisez le même code que celui que nous avons utilisé dans le Tinker ci-dessus. Les deux feraient le travail exact. Déclarons une route ‘changepassword’ et passons le code dans la fonction de rappel comme indiqué ci-dessous.
itinéraires/web.php
<?php
Route::get('changepassword', function() {
$user = AppUser::where('email', '[email protected]')->first();
$user->password = Hash::make('123456');
$user->save();
echo 'Password changed successfully.';
});
?>
Maintenant, exécutez l’URL YOUR_DOMAIN_URL/changepassword dans le navigateur. Il appellera la route et changera le mot de passe de l’utilisateur. Le développeur doit supprimer cette route une fois le mot de passe modifié.
Articles Liés
- Comment créer un blog avec Laravel
- Comment créer un pot de miel pour lutter contre le spam de formulaire dans Laravel
- Sauvegarder l’application Laravel sur Dropbox