Webアプリケーションを開発する場合、ユーザーのログイン認証は必須の機能です。 Laravel フレームワークは、ユーザー認証を実装するためのさまざまな方法を提供し、開発者がユーザー登録、ログイン、ログアウト、その他の機能をアプリケーションに実装しやすくするために、デフォルトの ID 認証システム (LaravelIlluminateAuth) も提供します。
ログイン認証が成功した後、ユーザーのプロフィール ページや特定の機能ページなどの特定のページにジャンプしたいことがよくあります。 Laravel フレームワークでは、ログイン後のジャンプを実装するのは非常に簡単です。
この記事では、ユーザーがLaravelフレームワークにログインした後にジャンプする方法をいくつか紹介します。
LaravelIlluminateAuth が提供する ID 認証システムは、デフォルトでユーザーのログイン後のジャンプを設定します。 config/auth.php 設定ファイルには、次のデフォルト設定があります。
'redirect' => [ 'login' => '/login', 'logout' => '/logout', 'home' => '/home', 'register' => '/register', 'verify' => '/email/verify', 'reset' => '/password/reset', 'confirm' => '/password/confirm', ],
このうち、'home' はログイン後のジャンプ ページを表し、デフォルトは /home パスです。デフォルトのジャンプ ページを変更する必要がある場合は、必要なページへのパスを変更するだけで済みます。
コントローラーでのログイン後にジャンプ ページを手動で指定する必要がある場合は、Laravel フレームワークによって提供される RedirectResponse インスタンスを使用し、リダイレクト( ) 方法。
たとえば、ユーザー コントローラーでは、IlluminateFoundationAuthAuthenticatesUsers トレイトのAuthenticated() メソッドをオーバーライドできます。
use IlluminateSupportFacadesAuth; class UserController extends Controller { use AuthenticatesUsers; protected function authenticated(Request $request, $user) { return redirect()->route('user.show', $user->id); } }
上記のコードは、ユーザーが正常にログインした後に、指定されたユーザーにジャンプできます。情報ページ。
場合によっては、ユーザーがページにログインした後、ログインする前にジャンプ パスを設定する必要があります。 session() 関数と次の URL を使用できます。 Laravel::previous() メソッド。
たとえば、ログイン コントローラーでは、次のように実装できます:
use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; use IlluminateSupportFacadesURL; class LoginController extends Controller { public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended(URL::previous()); } return back()->withErrors(['email' => '登录失败']); } }
上記のコードでは、 redirect()->intended() メソッドを使用します。ログインする前にアクセスしたページに移動します。ユーザーがこれまでに他のページにアクセスしたことがない場合は、デフォルトのログイン ジャンプ パスにリダイレクトされます。
Laravelフレームワークのミドルウェアは便利な本人認証・認可機能を提供します。ミドルウェアでログイン後のジャンプパスを指定できます。
たとえば、認証ミドルウェアでログイン後のジャンプ パスを構成できます。
namespace AppHttpMiddleware; use IlluminateAuthMiddlewareAuthenticate as Middleware; class Authenticate extends Middleware { protected function redirectTo($request) { if (! $request->expectsJson()) { return route('login'); // 设置默认的跳转路径 } } }
上記のコードでは、失敗したログイン要求を処理するために redirectTo() メソッドを使用します。リクエスト中に json 形式のデータが返されることが予想される場合は、401 エラーが直接返されます。それ以外の場合、ユーザーはログイン ページにリダイレクトされます。
他のジャンプ パスを指定する必要がある場合は、return ステートメント内のルーティング エイリアスを変更するだけで済みます。
上記は、Laravel フレームワークでユーザーログイン後のジャンプを実装するいくつかの方法です。選択される具体的な方法は、開発者の実際のニーズと開発シナリオによって異なります。どの方法を使用しても、ユーザー認証機能を実現し、ログイン後のジャンプを便利かつ迅速に実現できます。
以上がログイン後のlaravelジャンプの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。