ホームページ > PHPフレームワーク > Laravel > ログイン後のlaravelジャンプ

ログイン後のlaravelジャンプ

王林
リリース: 2023-05-29 14:15:37
オリジナル
615 人が閲覧しました

Webアプリケーションを開発する場合、ユーザーのログイン認証は必須の機能です。 Laravel フレームワークは、ユーザー認証を実装するためのさまざまな方法を提供し、開発者がユーザー登録、ログイン、ログアウト、その他の機能をアプリケーションに実装しやすくするために、デフォルトの ID 認証システム (LaravelIlluminateAuth) も提供します。

ログイン認証が成功した後、ユーザーのプロフィール ページや特定の機能ページなどの特定のページにジャンプしたいことがよくあります。 Laravel フレームワークでは、ログイン後のジャンプを実装するのは非常に簡単です。

この記事では、ユーザーが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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート