【超初心者向け】Laravelで簡単ログイン機能を作る方法(Jetstreamなし/BreezeでOK!)

コンニチハ

パンに塗り塗りジャム太郎です!

今回のテーマは「Laravelで簡単ログイン機能を作る方法」についてです。


はじめに

LaravelでWebアプリを作るときに欠かせないのが「ログイン機能」です。しかし、Laravel公式が提供しているJetstreamは高機能すぎて、初心者には少し難しく感じるかもしれません。

そこで今回は、もっとシンプルに始められる「Laravel Breeze」を使って、最短でログイン機能を作る方法を紹介します!


Laravel Breezeとは?

Laravel Breeze は、Laravel公式が提供している軽量な認証システムです。以下の機能が最初から揃っています。

  • ユーザー登録
  • ログイン/ログアウト
  • パスワードリセット
  • メール認証(オプション)

Jetstreamとの大きな違いは、LivewireやInertiaといった技術を使わず、標準的なBladeテンプレートとコントローラーだけで動く点です。初心者には非常にわかりやすい構成です。


開発環境の準備

まずはLaravelの新規プロジェクトを作成します。

①Laravelをインストール

composer create-project laravel/laravel mantap-app
cd mantap-app

②Breezeをインストール

composer require laravel/breeze --dev
php artisan breeze:install

③フロントエンドのビルド

npm install && npm run dev

npm が使えない場合は pnpmyarn でもOK

④マイグレーション実行

php artisan migrate

これでBreezeの準備は完了です!


Breezeのログイン機能を動かしてみる

ブラウザでアプリを起動してみましょう。

php artisan serve

ブラウザで http://localhost:8000 にアクセスすると、すでに以下の画面ができています。

  • ユーザー登録画面 /register
  • ログイン画面 /login

実際にユーザー登録→ログイン→ログアウトまで確認してみましょう。

ここまでで、ログイン機能はほぼ完成です!


少しだけカスタマイズしてみよう

実際のアプリでは、ユーザー登録時に追加情報を保存したい場合もあります。

例として「ニックネーム」を登録してみます。

①マイグレーションにカラム追加

database/migrations/xxxx_create_users_table.php を編集

$table->string('nickname')->nullable();

マイグレーションを再実行

php artisan migrate:fresh

②バリデーションに項目追加

app/Http/Controllers/Auth/RegisteredUserController.php$request->validate() を修正

$request->validate([
    'name' => 'required|string|max:255',
    'nickname' => 'nullable|string|max:255',
    'email' => 'required|string|email|max:255|unique:users',
    'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);

③保存処理に追加

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

これでニックネームも登録できます!


Jetstreamとの違いまとめ

機能BreezeJetstream
難易度簡単やや高め
使用技術BladeLivewire or Inertia
機能最低限多機能(2FA、API、チーム管理等)

初心者はまずBreezeで基礎を固めるのがおすすめです!


まとめ

Laravelでログイン機能を作りたい初心者には、Breezeが最適です。今回紹介した手順で、最短10分ほどで基本的な認証システムを作れます。

次は以下のような発展にもチャレンジしてみましょう。

  • メール認証の追加
  • SNSログインの実装(Laravel Socialite)
  • 管理者権限(認可機能)の導入

では、また次の記事で〜

投稿者 パンに塗り塗りジャム太郎

コンニチハ! Z世代のパンに塗り塗りジャム太郎です。 Web系自社開発企業でポンコツエンジニアをしております。 このブログでは最低1人にでもタメになってくれたらいいなぁ〜ぐらいの内容を発信しています。 お手柔らかによろしくお願いいたします。