パスワードのリセット
はじめに
ほとんどのWebアプリケーションは、ユーザーが忘れたパスワードをリセットする方法を提供します。手作業で毎回実装するのではなく、Laravelはパスワードリセットリンクの送信や安全なパスワードリセットのための便利なサービスを提供しています。
すぐに始めたいですか?新しいLaravelアプリケーションにLaravelのアプリケーションスターターキットをインストールしてください。Laravelのスターターキットは、忘れたパスワードのリセットを含む、認証システム全体のスキャフォールディングを行います。
モデルの準備
Laravelのパスワードリセット機能を使用する前に、アプリケーションの App\Models\User
モデルは Illuminate\Notifications\Notifiable
トレイトを使用する必要があります。通常、このトレイトは、新しいLaravelアプリケーションで作成されるデフォルトの App\Models\User
モデルに既に含まれています。
次に、 App\Models\User
モデルが Illuminate\Contracts\Auth\CanResetPassword
契約を実装していることを確認してください。フレームワークに含まれる App\Models\User
モデルは既にこのインターフェースを実装しており、 Illuminate\Auth\Passwords\CanResetPassword
トレイトを使用して、インターフェースを実装するために必要なメソッドを含んでいます。
データベースの準備
アプリケーションのパスワードリセットトークンを保存するためのテーブルを作成する必要があります。通常、これはLaravelのデフォルトの 0001_01_01_000000_create_users_table.php
データベースマイグレーションに含まれています。
信頼されたホストの設定
デフォルトでは、Laravelは受信したすべてのリクエストに応答します。HTTPリクエストの Host
ヘッダーの内容に関係なく応答します。さらに、Webリクエスト中にアプリケーションへの絶対URLを生成する際に、 Host
ヘッダーの値が使用されます。
通常、特定のホスト名に一致するリクエストのみをアプリケーショ ンに送信するように、NginxやApacheなどのWebサーバーを設定する必要があります。ただし、Webサーバーを直接カスタマイズする機能がなく、Laravelに特定のホスト名にのみ応答するように指示する必要がある場合は、アプリケーションのbootstrap/app.php
ファイルでtrustHosts
ミドルウェアメソッドを使用することができます。これは、アプリケーションがパスワードリセット機能を提供している場合に特に重要です。
このミドルウェアメソッドについて詳しく知りたい場合は、TrustHosts
ミドルウェアのドキュメントを参照してください。
ルーティング
ユーザーがパスワードをリセットできるようにサポートを適切に実装するには、いくつかのルートを定義する必要があります。まず、ユーザーがメールアドレスを使用してパスワードリセットリンクをリクエストできるようにするための一対のルートが必要です。次に、ユーザーがメールで送信されたパスワードリセットリンクをクリックしてパスワードリセットフォームを完了するときに、実際にパスワードをリセットするための一対のルートが必要です。