Maison >cadre php >Laravel >Parlons de la façon de changer le mot de passe utilisateur dans Laravel

Parlons de la façon de changer le mot de passe utilisateur dans Laravel

PHPz
PHPzoriginal
2023-03-31 13:52:25926parcourir

Laravel est un framework PHP populaire qui fournit de nombreuses fonctions, notamment la modification des mots de passe des utilisateurs. Dans cet article, nous présenterons comment changer le mot de passe utilisateur dans Laravel. Voici les étapes spécifiques :

Étape 1 : Créer une route pour changer les mots de passe

Tout d'abord, nous devons créer une route Laravel pour changer les mots de passe des utilisateurs. Vous pouvez ajouter le code suivant dans le fichier web.php :

Route::get('/password', 'UserController@password')->name('password');
Route::post('/password', 'UserController@updatePassword')->name('updatePassword');

Ici nous définissons une route GET et POST. La route GET est utilisée pour afficher le formulaire de modification du mot de passe, et la route POST est utilisée pour soumettre les données du formulaire et effectuer l'opération de mise à jour du mot de passe. Dans le même temps, UserController@password et UserController@updatePassword sont les deux méthodes de contrôleur que nous devons créer.

Étape 2 : Créer un formulaire pour changer le mot de passe

Dans le répertoire resources/views, nous créons un fichier de vue password.blade.php, qui contient le formulaire de mise à jour du mot de passe. Voici un exemple de code :

<form method="POST" action="{{ route(&#39;updatePassword&#39;) }}">
    {{ csrf_field() }}

    <div class="form-group">
        <label for="current-password">Current Password</label>
        <input type="password" name="current-password" id="current-password" class="form-control" required>
    </div>

    <div class="form-group">
        <label for="new-password">New Password</label>
        <input type="password" name="new-password" id="new-password" class="form-control" required>
    </div>

    <div class="form-group">
        <label for="confirm-password">Confirm New Password</label>
        <input type="password" name="confirm-password" id="confirm-password" class="form-control" required>
    </div>

    <button type="submit" class="btn btn-primary">Submit</button>
</form>

Il existe trois zones de saisie pour saisir le mot de passe actuel, le nouveau mot de passe et confirmer le nouveau mot de passe. L'adresse de soumission du formulaire est définie sur le nom de l'itinéraire que nous avons défini dans l'itinéraire.

Étape 3 : Créer des méthodes de contrôleur

Nous devons maintenant créer deux méthodes dans le contrôleur UserController : password et updatePassword. Voici l'exemple de code :

public function password()
{
    return view('password');
}

public function updatePassword(Request $request)
{
    $this->validate($request, [
        'current-password' => 'required',
        'new-password' => 'required|string|min:6|confirmed'
    ]);

    $user = Auth::user();
    $currentPassword = $user->password;
    $passwordMatches = Hash::check($request['current-password'], $currentPassword);

    if ($passwordMatches) {
        $user->password = Hash::make($request['new-password']);
        $user->save();
        return redirect()->back()->with('success', 'Password updated successfully!');
    } else {
        return redirect()->back()->withErrors(['current-password' => 'Incorrect current password.']);
    }
}

Dans la méthode updatePassword, nous vérifions d'abord que la saisie du formulaire est conforme aux règles. Ensuite, nous obtenons les données utilisateur actuelles via la méthode Auth::user(), puis vérifions si le mot de passe actuel correspond au mot de passe de la base de données via la méthode Hash::check(). Si le mot de passe correspond avec succès, nous hachons le nouveau mot de passe à l'aide de la méthode Hash::make() et l'enregistrons dans la base de données.

Étape 4 : Testez la fonction de changement de mot de passe

Maintenant, nous avons créé la méthode route, formulaire et contrôleur. Nous pouvons accéder à la page de changement de mot de passe en accédant à l'adresse localhost/mot de passe et tester le code que nous avons écrit. Si tout se passe bien, nous pouvons laisser les utilisateurs changer leurs mots de passe !

Conclusion

Il est très pratique de changer le mot de passe utilisateur dans Laravel. Il nous suffit de créer une méthode de formulaire, de route et de contrôleur pour obtenir cette fonctionnalité. J'espère que cet article vous aidera à modifier les mots de passe des utilisateurs dans Laravel.

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:
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