Laravel は非常に人気のある PHP フレームワークであり、開発者が Web アプリケーションをより迅速かつ効率的に開発できるよう、多くの便利な機能と強力な機能を提供します。強力な機能の 1 つはユーザー ログイン システムです。 Laravel では、ユーザーをアプリケーションにログインさせるためのユーザー認証システムを簡単に作成できます。登録、ログイン、パスワードのリセットなどの一般的なユーザー認証機能の多くは、単純なコードを使用して簡単に実装できます。
ユーザーがアプリケーションに正常にログインすると、Laravel はデフォルトでユーザーをアプリケーションのルート ディレクトリにリダイレクトします。ただし、ログイン後にユーザーをユーザーのプロファイルやコントロール パネルなどの特定のページにリダイレクトしたい場合があります。この記事では、LaravelでデフォルトのログインリダイレクトURLを設定する方法を説明します。
まず、Laravel のユーザー認証システムがどのように機能するかを見てみましょう。 Laravel はデフォルトでガードを使用してユーザー認証を管理し、「Web」ガードは Laravel がデフォルトで使用するガードです。ガードを使用する前に、config/auth.php ファイルでガードを設定する必要があります。このファイルでは、さまざまなガードとその構成を定義できます。たとえば、以下は 2 つのガード「web」と「admin」を定義する config/auth.php ファイルの例です。
return [ 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => AppModelsUser::class, ], 'admins' => [ 'driver' => 'eloquent', 'model' => AppModelsAdmin::class, ], ], ];
上記の例では、「Web」ガードと「admin」ガードの両方が認証にセッション ドライバーを使用し、「Web」ガードがユーザー認証に「users」プロバイダーを使用していることがわかります。 、および "admin" " ガードは、管理者認証に "admins" プロバイダーを使用します。さらに、config/auth.php ファイルで各ガードのデフォルトのリダイレクト URL を構成することもできます。たとえば、デフォルトのリダイレクト URL を使用する例を次に示します。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', 'redirect' => '/', ], ],
上の例では、「Web」ガードのデフォルトのリダイレクト URL を、Web ガードのルート ディレクトリである「/」に設定します。応用。ユーザーがログインに成功すると、この URL にリダイレクトされます。同様に、必要に応じて、ユーザーのプロファイルやコントロール パネルなどにリダイレクト URL を変更できます。ガードの設定の「リダイレクト」オプションを、リダイレクトする必要がある URL に変更するだけです。
ただし、上記の例の「web」ガードや「admin」ガードなど、アプリケーションに複数のガードがある場合、デフォルトのリダイレクト URL を設定するにはどうすればよいでしょうか?この場合、Laravel は、各ガードのデフォルトのリダイレクト URL を簡単に設定できるシンプルなソリューションを提供します。
デフォルトでは、Laravel はユーザーのログインを管理するために app/Http/Controllers/Auth/LoginController.php ファイルに LoginController を提供します。このコントローラの各ガードのデフォルトのリダイレクト URL を設定できます。たとえば、「web」ガードと「admin」ガードのデフォルトのリダイレクト URL を変更する例を次に示します。
<?php namespace AppHttpControllersAuth; use AppHttpControllersController; use IlluminateFoundationAuthAuthenticatesUsers; class LoginController extends Controller { use AuthenticatesUsers; protected $redirectTo = '/'; public function __construct() { $this->middleware('guest')->except('logout'); } protected function redirectTo() { if (auth()->user()->isAdmin()) { return '/admin/dashboard'; } else { return '/home'; } } }
上の例では、LoginController の redirectTo() メソッドをオーバーライドし、ユーザーのガードをリダイレクトします。別のリダイレクト URL を返します。現在のユーザーのガードが「admin」の場合は管理者コントロール パネルにリダイレクトされ、それ以外の場合はユーザーの個人ホームページにリダイレクトされます。必要に応じてリダイレクト URL を変更できます。
redirectTo() メソッドは、ガードに「redirect」オプションが設定されている場合にのみ、ユーザーをリダイレクトするために使用できることに注意してください。 config/auth.php ファイルで「redirect」オプションを設定していない場合は、デフォルトのリダイレクト URL を使用する必要があります。さらに、 redirectTo() メソッドのオーバーライドは、「redirect」オプションを直接変更することとは本質的に異なります。 redirectTo() メソッドでは、リダイレクト URL を細かく制御するためのロジック コードを記述できます。
一般に、Laravel のデフォルトのログイン リダイレクト URL の設定は非常に簡単です。これは、config/auth.php ファイルまたは LoginController の redirectTo() メソッドを通じて設定できます。アプリケーションに複数のガードがある場合、LoginController で各ガードのデフォルトのリダイレクト URL をきめ細かく制御できます。これらのメソッドを使用すると、ユーザー エクスペリエンスとアプリケーションのフローをより詳細に制御できるようになり、アプリケーションがよりスムーズで使いやすくなります。
以上がlaravelログインデフォルトジャンプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。