ホームページ  >  記事  >  PHPフレームワーク  >  laravelログインジャンプ

laravelログインジャンプ

WBOY
WBOYオリジナル
2023-05-29 10:41:37343ブラウズ

オープンソースの PHP Web フレームワークとして、Laravel は常に Web 開発者に好まれてきました。強力な機能と使いやすさが利点です。 Web アプリケーションの場合、ログインは非常に基本的な機能の 1 つです。 Laravel では、ユーザーのログインとジャンプをすぐに実装できます。

次に、ユーザーログインを実装してLaravelにジャンプする方法について説明します。

前提条件

コードを書き始める前に、まず次の条件を確認する必要があります:

  • Laravel 環境があること;
  • Laravelの認証機能をオンにしました。

Laravel の ID 認証機能を有効にしていない場合は、ターミナルでプロジェクトのルート ディレクトリに移動し、次のコマンドを入力できます:

php 職人 make:auth

Laravel プロジェクトで本人認証機能を有効にしている場合は、次の手順で実装できます。

ユーザーログイン

Laravelでは、ユーザーがフォームを通じて入力したユーザー名とパスワードを取得できます。一般に、次のコードに示すように、フォームに Post メソッドを設定し、LoginController というコントローラーに送信します。

<form method="POST" action="{{ route('login') }}">
    @csrf

    <div>
        <label for="email">邮箱</label>

        <div>
            <input id="email" type="email" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
        </div>
    </div>

    <div>
        <label for="password">密码</label>

        <div>
            <input id="password" type="password" name="password" required autocomplete="current-password">
        </div>
    </div>

    <div>
        <div>
            <div>
                <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>

                <label for="remember">
                    记住我
                </label>
            </div>
        </div>
    </div>

    <div>
        <div>
            <button type="submit">
                登录
            </button>

            @if (Route::has('password.request'))
                <a href="{{ route('password.request') }}">
                    忘记密码了?
                </a>
            @endif
        </div>
    </div>
</form>

ユーザーがフォーム情報を入力した後、「ログイン」ボタンをクリックします。 、データは LoginController コントローラーに送信されます。

app/Http/Controllers/Auth/LoginController.php ファイルでログイン メソッドを見つけ、メソッドの内容を次のように変更します。

use IlluminateHttpRequest;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        // 认证成功后的操作
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

上記のコードでは、最初に次のコードを取得します。ユーザーフォーム 送信されるデータはメールアドレスとパスワードです。次に、Auth::attempt() メソッドを使用してユーザーの認証を試みます。ユーザー認証が成功すると、if ステートメントで後続の操作が実行されます。そうでない場合は、ユーザー名またはパスワードが間違っていることをユーザーに知らせるエラー メッセージが返され、ログイン インターフェイスがリロードされます。

ジャンプ

ユーザーが正常にログインしたら、ユーザーを指定されたページにジャンプする必要があります。 Laravelでは以下の2つの実装方法があります。

Controller メソッド

LoginController コントローラーにauthenticated() メソッドを追加することで、指定したページにリダイレクトできます。このメソッドは、ユーザー認証が成功した後に自動的に呼び出されます。変更された LoginController コントローラー コードは次のとおりです。

use IlluminateHttpRequest;

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        return redirect()->intended('/home');
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

protected function authenticated(Request $request, $user)
{
    return redirect('/home');
}

上記のコードでは、ユーザーを /home ページにリダイレクトするAuthenticated() メソッドが示されています。

ルーティング方法

ログイン成功後にルートを登録することでリダイレクトを実装することもできます。 web.php ファイルで、次のルートを登録します:

Route::get('/home', function () {
    return view('home');
})->name('home');

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function () {
        return redirect()->route('home');
    });
});

上記のコードでは、デフォルトのルート ルート / を認証ミドルウェアに登録しました。ユーザーが正常にログインすると、自動的に / にリダイレクトされます。ホームページ。

まとめ

以上がLaravelでユーザーログインしてジャンプする方法です。 Laravelが提供する本人認証機能は、ユーザーログインを迅速に実装するのに非常に役立ちます。同時に、コントローラーとルーティングを通じて、ユーザーのジャンプを詳細に制御することもできます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。