ホームページ >PHPフレームワーク >Laravel >laravelは登録とログインを実装します

laravelは登録とログインを実装します

WBOY
WBOYオリジナル
2023-05-21 09:31:071155ブラウズ

Laravel は、洗練された構文、強力な機能、豊富なドキュメントを備えた一般的に使用される PHP フレームワークであり、多くの PHP 開発者に選ばれるフレームワークとなっています。この記事では、Laravelフレームワークを使用して登録およびログイン機能を実装する方法を紹介します。

1. Laravel アプリケーションの作成
登録機能とログイン機能の実装を開始する前に、まず Laravel アプリケーションを作成する必要があります。次のように、Laravel によって公式に提供されている Composer コマンドを使用して、新しいアプリケーションを作成できます。

composer create-project --prefer-dist laravel/laravel your-project-name

ここで、your-project-name は、作成するアプリケーションの名前です。

作成が完了したら、アプリケーション ディレクトリに入り、ローカル サーバーを起動します。

cd your-project-name
php artisan serve

ブラウザに http://localhost:8000 と入力して、アプリケーションにアクセスします。ウェルカムページ。

2. 認証システムの作成
登録およびログイン機能を実装する前に、まず基本認証システムを作成する必要があります。 Laravel は、認証関連のビューとコントローラーを迅速に生成するための make:auth Artisan コマンドを提供します。

php artisan make:auth

上記のコマンドを実行すると、Laravel は registerloginlogout に関連するビューとコントローラーを自動的に作成し、それらをアプリケーション。さらに、Laravel はデータベース内に関連するユーザーとパスワードのリセットテーブルを作成します。

3. データベーステーブルの作成
デフォルトでは、Laravel は MySQL データベースを使用します。この例では、ユーザー データを保存するために users という名前のデータ テーブルを作成する必要があります。次の Artisan コマンドを使用してテーブルを作成できます:

php artisan make:migration create_users_table --create=users

上記のコマンドを実行すると、Laravel は database/migrations ディレクトリに create_users_table という名前のファイルを作成します。アプリケーションの移行ファイル。ファイルを開いて、up メソッドを次のように変更します。

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

上記の移行ファイルは、name## を含む users データ テーブルのフィールドを定義します。 # (ユーザー名)、email (メールアドレス)、password (パスワード) など。

移行ファイルを変更した後、次のアーティザン コマンドを実行して、

users データ テーブルを実際に作成する必要があります:

php artisan migrate

4. 登録ページを作成します

次に、ユーザーがユーザー名、電子メール アドレス、パスワードを入力できる登録ページを作成する必要があります。
resources/views/auth/register.blade.php ファイルを開くと、Laravel が基本的な登録フォームを作成したことがわかります。

この時点で、いくつかのフィールドを削除し、入力する必要がある

name フィールドとパスワード確認 password_confirmation フィールドを追加する必要があります。修正されたコードは次のとおりです:

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

    <div>
        <label for="name">{{ __('Name') }}</label>

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

    <div>
        <label for="email">{{ __('E-Mail Address') }}</label>

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

    <div>
        <label for="password">{{ __('Password') }}</label>

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

    <div>
        <label for="password-confirm">{{ __('Confirm Password') }}</label>

        <div>
            <input id="password-confirm" type="password" name="password_confirmation" required>
        </div>
    </div>

    <div>
        <button type="submit">
            {{ __('Register') }}
        </button>
    </div>
</form>

5. 登録リクエストの処理

これで登録フォームが作成されましたが、ユーザーがフォームを送信しても有効になりません。したがって、登録リクエストを処理するには、
app/Http/Controllers/Auth/RegisterController.php ファイルを変更する必要があります。

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|unique:users|max:255',
        'password' => 'required|string|min:8|confirmed',
    ]);

    User::create([
        'name' => $request->name,
        'email' => $request->email,
        'password' => bcrypt($request->password),
    ]);

    return redirect()->intended('dashboard');
}

上記のコードは、登録リクエストを処理するために使用される

store() という名前のメソッドを定義します。まず、validate() メソッドは、要求されたデータを検証します。検証に合格した場合は、User モデルを使用して新しいユーザーを作成し、パスワードを暗号化します。最後に、アプリケーションのダッシュボード ページにリダイレクトします。

6. ログイン ページの作成

次に、ユーザーが登録したメール アドレスとパスワードを入力できるように、ログイン ページを作成する必要があります。
resources/views/auth/login.blade.php ファイルを開くと、Laravel が基本的なログイン フォームを作成したことがわかります。

7. ログイン要求の処理

登録フォームは作成されましたが、ユーザーがフォームを送信しても有効になりません。したがって、ログイン要求を処理するには、
app/Http/Controllers/Auth/LoginController.php ファイルを変更する必要があります。

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

    if (Auth::attempt($credentials)) {
        $request->session()->regenerate();

        return redirect()->intended('dashboard');
    }

    return back()->withErrors([
        'email' => 'The provided credentials do not match our records.',
    ]);
}

上記のコードは、ログイン要求を処理するために使用される

store() という名前のメソッドを定義します。まず、attempt() メソッドは、ユーザーが提供した資格情報を使用して認証を試みます。検証が成功すると、新しいセッションが生成され、ユーザーはアプリケーションのダッシュボード ページにリダイレクトされます。これが失敗した場合は、back() メソッドを使用して、エラー メッセージを表示してユーザーを元のログイン ページにリダイレクトします。

8. 認証ミドルウェアのセットアップ

登録およびログイン機能が実装されたら、認証されたユーザーのみがアクセスできるように、アプリケーションの特定のルートを保護する必要があります。 Laravel では、ミドルウェアを使用してこれを実現できます。 Laravel は、ユーザーがアプリケーションにログインしていることを確認する
auth というミドルウェアを提供します。

Laravel はデフォルトで、

auth ルート名を使用して任意のルートに auth ミドルウェアを適用します。次のコードを使用して 1 つ以上のミドルウェアを指定できます。

Route::get('/dashboard', function () {
    // 仅允许已登录用户访问
})->middleware(['auth']);

これで、認証されたユーザーのみが

/dashboard ルートにアクセスできるようになります。

概要

この記事では、Laravel フレームワークを使用して登録機能とログイン機能を実装する方法を紹介します。 Laravel フレームワークを利用すると、安全で信頼性の高い Web アプリケーションを迅速かつ簡単に構築し、Web アプリケーション開発プロセスを促進できます。初心者でも経験豊富な開発者でも、Laravel フレームワークを使用して独自の Web アプリケーションを構築してみることができます。

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

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