ホームページ  >  記事  >  PHPフレームワーク  >  Laravelでユーザーパスワードを変更する方法について話しましょう

Laravelでユーザーパスワードを変更する方法について話しましょう

PHPz
PHPzオリジナル
2023-03-31 13:52:25849ブラウズ

Laravel は、ユーザー パスワードの変更など、多くの機能を提供する人気の PHP フレームワークです。この記事では、Laravelでユーザーのパスワードを変更する方法を紹介します。具体的な手順は次のとおりです:

ステップ 1: パスワード変更用のルートを作成する

まず、ユーザー パスワードを変更するための Laravel ルートを作成する必要があります。次のコードを web.php ファイルに追加できます。

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

ここでは、GET および POST ルートを定義します。 GET ルートはパスワードを変更するためのフォームを表示するために使用され、POST ルートはフォーム データを送信してパスワード更新操作を実行するために使用されます。同時に、UserController@password と UserController@updatePassword の 2 つのコントローラー メソッドを作成する必要があります。

ステップ 2: パスワードを変更するフォームを作成する

resources/views ディレクトリに、パスワードを更新するためのフォームを含む、password.blade.php ビュー ファイルを作成します。以下にサンプル コードを示します。

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

現在のパスワード、新しいパスワード、新しいパスワードを確認するための 3 つの入力ボックスがあります。フォームの送信アドレスは、ルートで定義したルート名に設定されます。

ステップ 3: コントローラー メソッドの作成

次に、UserController コントローラーに 2 つのメソッド (password と updatePassword) を作成する必要があります。サンプル コードは次のとおりです。

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.']);
    }
}

updatePassword メソッドでは、まずフォーム入力がルールに準拠していることを確認します。次に、Auth::user() メソッドを通じて現在のユーザー データを取得し、Hash::check() メソッドを通じて現在のパスワードがデータベース内のパスワードと一致するかどうかを確認します。パスワードが正常に一致した場合は、Hash::make() メソッドを使用して新しいパスワードをハッシュし、データベースに保存します。

ステップ 4: パスワード変更機能をテストする

これで、ルート、フォーム、コントローラー メソッドが作成されました。 localhost/password アドレスにアクセスしてパスワード変更ページにアクセスし、作成したコードをテストします。すべてがうまくいけば、ユーザーがパスワードを変更できるようになります。

結論

Laravelでユーザーのパスワードを変更するととても便利です。この機能を実現するには、フォーム、ルート、コントローラー メソッドを作成するだけです。この記事がLaravelでのユーザーパスワードの変更に役立つことを願っています。

以上がLaravelでユーザーパスワードを変更する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。