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 は register
、login
、logout
に関連するビューとコントローラーを自動的に作成し、それらをアプリケーション。さらに、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
次に、ユーザーがユーザー名、電子メール アドレス、パスワードを入力できる登録ページを作成する必要があります。
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>
これで登録フォームが作成されましたが、ユーザーがフォームを送信しても有効になりません。したがって、登録リクエストを処理するには、
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 モデルを使用して新しいユーザーを作成し、パスワードを暗号化します。最後に、アプリケーションのダッシュボード ページにリダイレクトします。
次に、ユーザーが登録したメール アドレスとパスワードを入力できるように、ログイン ページを作成する必要があります。
resources/views/auth/login.blade.php ファイルを開くと、Laravel が基本的なログイン フォームを作成したことがわかります。
登録フォームは作成されましたが、ユーザーがフォームを送信しても有効になりません。したがって、ログイン要求を処理するには、
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() メソッドを使用して、エラー メッセージを表示してユーザーを元のログイン ページにリダイレクトします。
登録およびログイン機能が実装されたら、認証されたユーザーのみがアクセスできるように、アプリケーションの特定のルートを保護する必要があります。 Laravel では、ミドルウェアを使用してこれを実現できます。 Laravel は、ユーザーがアプリケーションにログインしていることを確認する
auth というミドルウェアを提供します。
auth ルート名を使用して任意のルートに
auth ミドルウェアを適用します。次のコードを使用して 1 つ以上のミドルウェアを指定できます。
Route::get('/dashboard', function () { // 仅允许已登录用户访问 })->middleware(['auth']);
/dashboard ルートにアクセスできるようになります。
この記事では、Laravel フレームワークを使用して登録機能とログイン機能を実装する方法を紹介します。 Laravel フレームワークを利用すると、安全で信頼性の高い Web アプリケーションを迅速かつ簡単に構築し、Web アプリケーション開発プロセスを促進できます。初心者でも経験豊富な開発者でも、Laravel フレームワークを使用して独自の Web アプリケーションを構築してみることができます。
以上がlaravelは登録とログインを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。