パスワードを再設定する
ビュー
- パスワードをリセットした後
- #カスタマイズ
- ##はじめに
- {ヒント} すぐに始めたいですか? 新しい Laravel アプリケーションで
- phpArtisan make:auth を実行し、ブラウザで http://your-app.test/register を開くか、それを渡します。アプリケーションには任意の URL が割り当てられます。このコマンドは、パスワードのリセットを含む、認証システム全体のセットアップを担当します。
トレイトを使用する必要があります。
config/auth.php
データベースに関する注意事項
まず、
App\User
モデルがIlluminate\Contracts\Auth\CanResetPassword
コントラクトを実装していることを確認します。もちろん、フレームワークに含まれるApp\User
モデルはすでにこのインターフェイスを実装しており、インターフェイスの実装に必要なメソッドを含めるためにIlluminate\Auth\Passwords\CanResetPassword
特性を使用しています。 。リセット トークンを生成するためのテーブルの移行
次に、パスワード リセット トークンを保存するためのデータ テーブルを作成する必要があります。このデータテーブルの移行は、Laravel アプリケーションの
database/migrations
ディレクトリに含まれています。したがって、必要なのはデータベース移行コマンドを実行することだけです。php artisan migrate##routingLaravel はすでに # にあります。 ## Auth\ForgotPasswordControllerクラスと
Auth\ResetPasswordController
クラスには、パスワード リセット リンク電子メールを送信し、ユーザーのパスワードをリセットするためのロジックが含まれています。パスワード リセットの実行に必要なすべてのルートは、Artisan コマンドmake:auth
:
php artisan make:authを使用して生成できます。ビューmake:authコマンドを実行すると、Laravel はパスワードをリセットするために必要なすべてのビューを生成します。これらのビューは、
#パスワードのリセット後ユーザー パスワードをリセットするためのルートとビューを定義したら、次のことができます。ブラウザでresources/views/auth/passwords
ディレクトリにあります。アプリケーションのニーズに応じて、これらのビューを自由に変更できます。/password/reset
ルートにアクセスしてパスワードをリセットします。フレームワークのForgotPasswordController
にリダイレクトされます。には、パスワード リセット リンクの電子メールを送信するロジックがすでに含まれており、
ResetPasswordControllerにはユーザー パスワードをリセットするロジックが含まれています。
パスワードをリセットすると、ユーザーは自動的にログインし、
/homeResetPasswordController
で
redirectToプロパティを定義することで、パスワード リセット後のリダイレクトの場所をカスタマイズできます:
protected $redirectTo = '/dashboard';{note} デフォルトでは、パスワード リセット トークン1 時間後に期限切れになります。これは、
ファイルのパスワード リセットカスタムカスタム認証ウォッチャーexpire
オプションを使用して変更できます。
auth.php
構成ファイルでは、複数の「ウォッチャー」を構成できます。これを使用して、複数のユーザー テーブルの認証動作を定義できます。フレームワークでResetPasswordController
をカスタマイズし、コントローラーの
guardメソッドをオーバーライドすることで、選択したガードを使用できます。このメソッドはガード インスタンスを返す必要があります:
use Illuminate\Support\Facades\Auth;protected function guard(){ return Auth::guard('guard-name'); }カスタム パスワード プロキシ
auth.php
構成ファイルでは、複数のユーザー テーブルのパスワードをリセットするために使用できる複数のパスワード「プロキシ」を構成できます。コントローラーのbroker
メソッドをオーバーライドして、選択したブローカーを使用することで、フレームワークのForgotPasswordController
とResetPasswordController
をカスタマイズできます:use Illuminate\Support\Facades\Password; /** * 获取在密码重置期间使用的代理。 * * @return PasswordBroker */ protected function broker(){ return Password::broker('name'); }カスタム パスワード リセット メール
パスワード リセット リンクをユーザーに送信するために使用される通知クラスを簡単に変更できます。まず、
User
モデルのsendPasswordResetNotification
メソッドをオーバーライドします。このメソッドでは、任意の通知クラスを使用して通知を送信できます。このメソッドで受け取られる最初のパラメーターは、パスワード リセット トークン$token
:/** * 发送密码重置通知。 * * @param string $token * @return void */ public function sendPasswordResetNotification($token){ $this->notify(new ResetPasswordNotification($token)); }