laravelログイン変更

王林
王林オリジナル
2023-05-20 15:18:39569ブラウズ

Laravel は、Web アプリケーション開発で広く使用されている非常に人気のあるオープンソース PHP フレームワークです。その中でもユーザーログイン機能の実装はWebアプリケーションの基本要件です。この記事では、特定のニーズを満たすため、またはユーザーエクスペリエンスを向上させるために、Laravel アプリケーションのログイン機能を変更する方法について説明します。

ルーティングの変更

まず、ログイン ルートを変更する必要があります。デフォルトでは、Laravel アプリケーションのログイン ルートは /auth/login です。ただし、カスタム パスに変更することが必要になる場合があります。 Laravel では、routes/web.php ファイルを変更することでこれを実現できます。

次に、ログイン ルートを /auth/login から /login に変更する例を示します。

Route::get('/login', 'AuthLoginController@showLoginForm')->name('login');
Route::post('/login', 'AuthLoginController@login');

ログイン フォーム ビューを変更する

次に、ログインを変更します。フォーム ビュー 特定のニーズを満たすため、またはユーザー エクスペリエンスを向上させるため。 Laravelでは、ログインフォームビューはresources/views/auth/login.blade.phpファイルによって定義されます。

これは、フォームに「記憶する」チェックボックスを追加して、ユーザーがログイン状態を維持するかどうかを選択できるようにする例です:

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

    <div class="form-group">
        <label for="email">{{ __('E-Mail Address') }}</label>
        <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>

        @error('email')
            <span class="invalid-feedback" role="alert">
                <strong>{{ $message }}</strong>
            </span>
        @enderror
    </div>

    <div class="form-group">
        <label for="password">{{ __('Password') }}</label>
        <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">

        @error('password')
            <span class="invalid-feedback" role="alert">
                <strong>{{ $message }}</strong>
            </span>
        @enderror
    </div>

    <div class="form-group form-check">
        <input type="checkbox" class="form-check-input" id="remember" name="remember">
        <label class="form-check-label" for="remember">{{ __('Remember Me') }}</label>
    </div>

    <button type="submit" class="btn btn-primary">{{ __('Login') }}</button>
</form>

Modify Login Controller

最後に、フォームの送信に応答し、特定のアクションを実行できるようにログイン コントローラーを変更する必要があります。 Laravel では、デフォルトのログインコントローラーは app/Http/Controllers/Auth/LoginController.php です。

これは、ログイン成功後にユーザーを特定のページに自動的にリダイレクトする redirectTo() メソッドを追加した例です。

<?php

namespace AppHttpControllersAuth;

use AppHttpControllersController;
use IlluminateFoundationAuthAuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/dashboard';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    /**
     * Get the post login redirect path.
     *
     * @return string
     */
    public function redirectTo()
    {
        if (auth()->user()->isAdmin()) {
            return '/admin/dashboard';
        }

        return '/dashboard';
    }
}

上の例では、 redirectTo() メソッドは次のとおりです。 auth() ヘルパー関数を使用してユーザーの役割を確認し、適切なページにリダイレクトしました。これにより、Laravel ログイン機能の柔軟性と拡張性が向上します。

概要

この記事の導入部を通じて、読者は Laravel アプリケーションのログイン関数を変更する方法を学びました。このプロセスには、ログイン ルートの変更、ログイン フォーム ビューの変更、ログイン コントローラーの変更が含まれます。これらの改善により、ユーザー エクスペリエンスが向上し、特定のニーズに基づいてカスタマイズされたログイン機能が有効になります。 Laravel アプリケーションが開発され、ユーザーのニーズが変化するにつれて、ここにはログイン機能の変更がさらに含まれることになります。

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

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