laravelでログイン後のジャンプ機能を実装する方法

PHPz
リリース: 2023-04-21 11:15:40
オリジナル
876 人が閲覧しました

Laravel は現在最も広く使用されている PHP Web フレームワークであり、そのログイン機能は非常によく使用されており、ログイン成功後に指定されたページにジャンプすることも共通の要件の 1 つです。この記事では、Laravelでログイン後のジャンプ機能を実装する方法を詳しく紹介します。

1. Laravel をインストールする

Laravel をインストールしていない場合は、次の手順に従ってインストールできます:

  1. Laravel インストーラーをインストールします: composer global require laravel/installer
  2. 新しいプロジェクトを作成します:laravel new project_name
  3. プロジェクト ディレクトリを入力します:cd project_name
  4. Laravel 組み込みサーバーを起動します: php 職人サーブ

この記事では、開発にデフォルトの構成を使用します。他の構成を使用している場合は、デフォルトの構成が使用される可能性があります。わずかに異なります。

2. ログイン関数の実装

Laravel でログイン関数を実装するのは非常に簡単で、Auth ミドルウェアを使用するだけです。次のルートを routes/web.php ファイルに追加します。

Route::get('/login', 'LoginController@showLoginForm')->name('login');
Route::post('/login', 'LoginController@login');
ログイン後にコピー

これら 2 つのルートは、それぞれログイン ページの表示とログイン操作の処理に対応します。このうち、LoginController@showLoginForm メソッドはログイン フォームの表示に使用され、LoginController@login メソッドはユーザーによって送信されたログイン要求の処理に使用されます。

LoginController を作成していない場合は、次のコマンドを使用してすぐに作成できます。

php artisan make:controller LoginController
ログイン後にコピー

LoginController では、# を使用できます。 # Laravel によって提供される #AuthenticatesUsers トレイトはログイン機能を迅速に実装します。この特性をクラスに導入するだけです:

use AuthenticatesUsers;

public function __construct()
{
    $this->middleware('guest')->except('logout');
}
ログイン後にコピー
デフォルトでは、ログインに成功すると、

Auth\LoginController## にある /home ページにジャンプします。 #$redirectTo 属性を変更して、ログイン成功後にユーザーがジャンプするページを指定します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">protected $redirectTo = '/dashboard';//修改为你要跳转的路径</pre><div class="contentsignin">ログイン後にコピー</div></div>3. ログイン後のジャンプの実装

Laravel でのログイン後のジャンプの実装も非常に簡単で、

$redirectTo

属性を変更するだけです。ログイン コントローラー。ただし、ログインに成功した後にユーザーが以前にアクセスしたページにジャンプしたい場合は、次の操作を行う必要があります:

Create
    RedirectIfAuthenticated
  1. middleware
app/Http/Middleware

ディレクトリに RedirectIfAuthenticated.php ファイルを作成し、次のコードを追加します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;?php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; class RedirectIfAuthenticated { public function handle(Request $request, Closure $next, $guard = null) { if (Auth::guard($guard)-&gt;check()) {             return redirect()-&gt;intended('/dashboard');//修改为登录成功后要跳转的路径         }         return $next($request);     } }</pre><div class="contentsignin">ログイン後にコピー</div></div># の intended

メソッド## code ユーザーを最初にページを要求した場所にリダイレクトしようとします。以前の場所がない場合は、デフォルトで指定されたパスにリダイレクトされます。

app/Http/Kernel.php
    にミドルウェアを登録します。
app/Http/Kernel.php

にミドルウェアを登録します。ファイルの $routeMiddleware 配列に新しいミドルウェアを追加します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">protected $routeMiddleware = [     // ... 其他中间件省略     'guest' =&gt; \App\Http\Middleware\RedirectIfAuthenticated::class, ];</pre><div class="contentsignin">ログイン後にコピー</div></div>

ログイン コントローラーを変更します
  1. ログイン コントローラーに、「ログイン成功後」を追加します。リダイレクトされたターゲット アドレスは、ログイン後にユーザーが以前にアクセスしたページ
protected $redirectTo = '/dashboard';//删除这行
ログイン後にコピー
public function login(Request $request)
{
    $this->validateLogin($request);

    if ($this->attemptLogin($request)) {
        // 登录成功后跳转到用户之前访问的页面
        return redirect()->intended('/dashboard');
    }

    $this->incrementLoginAttempts($request);

    return $this->sendFailedLoginResponse($request);
}
ログイン後にコピー

4 にジャンプできる intended メソッドに変更されます。 Laravel でログイン後のジャンプを実装するにはどのような操作が必要かを学びました。まず、

Auth

ミドルウェアを使用してログイン機能を実装する必要があります。次に、ログイン コントローラーの

$redirectTo

属性を変更して、ログイン後のジャンプを実装します。最後に、ミドルウェアを作成し、ログイン後にユーザーが以前にアクセスしたページにジャンプするようにログイン コントローラーのコードを変更します。 この記事が、Laravel でログイン後ジャンプ機能を簡単に実装するのに役立つことを願っています。

以上がlaravelでログイン後のジャンプ機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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