【第四弾】Laravel入門資料
- Windows環境構築
- Mac環境構築
- Laravelとは
- ルーティング
- ビュー
- コントローラ
- マイグレーション
- モデル
- ここまでの知識の実践
- 検索・フィルタ
- ソフトデリート
- ページネーション
- 画像アップロード
- 認証ライブラリ
- 認証実装
- ミドルウェア・ロール
- 総合実践
📚 Laravel公式ドキュメント - Authentication
https://laravel.com/docs/12.x/authentication
💡 この講座では、上記の公式ドキュメントを基に解説していきます。
公式ドキュメントは初学者には内容が難しいため、エッセンスを優しく噛み砕いて解説していきます。
認証機能 - Laravel認証ライブラリの紹介
Webアプリケーションには、ユーザー認証機能が必要不可欠です。
Laravelには複数の認証ライブラリが用意されており、プロジェクトの要件に応じて選択できます。
🎯 この章で学ぶこと
- ✅ Laravel認証ライブラリ一覧
- ✅ 各ライブラリのメカニズムとユースケース
- ✅ どのライブラリを選ぶべきか
- ✅ なぜスクラッチで学ぶべきか
Laravel認証ライブラリ一覧
Laravelには、用途に応じた複数の認証ライブラリが用意されています。
1. Laravel Breeze
📦 メカニズム
セッションベース認証
✨ 何をしてくれるのか
- ✅ usersテーブル、password_reset_tokensテーブル、sessionsテーブルを作成
- ✅ ログイン/登録/パスワードリセットのUI(Blade + Tailwind CSS)
- ✅ 認証ルート(/login, /register, /logout, /dashboard)
- ✅ 認証コントローラー全部
- ✅ プロフィール編集ページ
🎯 ユースケース
- • 小〜中規模のWebアプリケーション
- • シンプルな認証機能で十分な場合
- • カスタマイズ性を重視する場合
- • 学習用(生成されたコードが読みやすい)
💡 インストール
composer require laravel/breeze
php artisan breeze:install blade
npm install && npm run dev
php artisan migrate
🔍 各コマンドが生成するファイル
① composer require laravel/breeze
→ Breezeパッケージをインストール(足場ツール)
② php artisan breeze:install blade
→ 以下のファイルを自動生成:
- •
app/Http/Controllers/Auth/*- 認証コントローラー(ログイン/登録/パスワードリセット) - •
resources/views/auth/*- 認証画面(Blade + Tailwind CSS) - •
resources/views/dashboard.blade.php- ログイン後のダッシュボード - •
resources/views/profile/*- プロフィール編集画面 - •
routes/auth.php- 認証ルート定義 - •
database/migrations/*- users/sessions/password_reset_tokensテーブル
③ npm install && npm run dev
→ Tailwind CSSのビルド(認証画面のスタイル適用)
④ php artisan migrate
→ users/sessions/password_reset_tokensテーブルを作成
2. Laravel Jetstream
📦 メカニズム
セッションベース認証 + 高機能(2FA、チーム管理、API)
✨ 何をしてくれるのか
- ✅ Breezeの全機能
- ✅ 2段階認証(Two-Factor Authentication)
- ✅ チーム管理機能
- ✅ API トークン管理(Laravel Sanctum統合)
- ✅ プロフィール写真アップロード
- ✅ セッション管理(デバイス別ログアウト)
🎯 ユースケース
- • SaaSアプリケーション
- • チーム/組織機能が必要な場合
- • エンタープライズレベルのセキュリティが必要
- • 高度な認証機能が必要な場合
💡 インストール
composer require laravel/jetstream
php artisan jetstream:install livewire
npm install && npm run dev
php artisan migrate
3. Laravel Fortify
📦 メカニズム
バックエンド認証ロジックのみ(フロントエンドなし)
✨ 何をしてくれるのか
- ✅ ログイン/登録/パスワードリセットのバックエンド処理
- ✅ 2段階認証のロジック
- ✅ メール認証のロジック
- ❌ UIは生成されない(自分で作る)
🎯 ユースケース
- • SPA(Vue.js / React / Angular)のバックエンドAPI
- • フロントエンドを完全に自由に作りたい場合
- • BreezeやJetstreamのUIが不要な場合
💡 補足
JetstreamとBreezeの内部でFortifyが使われています。
4. Laravel Sanctum
📦 メカニズム
トークンベース認証(API認証特化)
✨ 何をしてくれるのか
- ✅ SPAセッション認証(Cookie認証)
- ✅ APIトークン認証(Bearer Token)
- ✅ モバイルアプリ用トークン発行
- ✅ トークンのスコープ管理
🎯 ユースケース
- • モバイルアプリのバックエンドAPI
- • Vue/React SPAとLaravel APIの組み合わせ
- • 個人アクセストークンが必要な場合
- • シンプルなAPI認証で十分な場合
💡 インストール
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
5. Laravel Passport
📦 メカニズム
OAuth2サーバー(本格的なAPI認証)
✨ 何をしてくれるのか
- ✅ OAuth2サーバーとして機能
- ✅ アクセストークン / リフレッシュトークン発行
- ✅ サードパーティアプリにAPIアクセスを許可
- ✅ クライアント管理
🎯 ユースケース
- • 「〇〇でログイン」機能を自分のサービスで提供したい
- • サードパーティアプリに自分のAPIアクセスを許可
- • 本格的なOAuth2が必要な場合
⚠️ 注意
シンプルなAPI認証ならSanctumで十分です。
Passportは重量級なので、本当に必要な場合のみ使用してください。
6. Laravel Socialite
📦 メカニズム
OAuth認証クライアント(ソーシャルログイン)
✨ 何をしてくれるのか
- ✅ Google / GitHub / Facebook / Twitterなどでログイン
- ✅ OAuthフローの簡略化
- ✅ ユーザー情報の取得
🎯 ユースケース
- • 「Googleでログイン」機能
- • 「GitHubでログイン」機能
- • ほぼすべての本番プロジェクトで併用
💡 インストール
composer require laravel/socialite
ライブラリ比較表
各ライブラリの特徴を一覧で比較します。
| ライブラリ | メカニズム | UI | 主な用途 |
| Breeze | セッション | ✅ あり | 小〜中規模Web |
| Jetstream | セッション + 高機能 | ✅ あり | SaaS / エンタープライズ |
| Fortify | バックエンドのみ | ❌ なし | SPA / カスタムUI |
| Sanctum | トークン | ❌ なし | API / モバイル |
| Passport | OAuth2 | ❌ なし | OAuth提供側 |
| Socialite | OAuth クライアント | ❌ なし | ソーシャルログイン |
プロジェクト規模別の推奨
| プロジェクト | 推奨ライブラリ |
| 小規模Webアプリ | Breeze + Socialite |
| 中規模Webアプリ | Breeze + Socialite + Spatie Permission |
| SaaSアプリ | Jetstream + Socialite |
| API + SPAアプリ | Sanctum + Fortify |
| モバイルアプリAPI | Sanctum |
| OAuth提供サービス | Passport |
なぜスクラッチで学ぶべきか
ライブラリは便利ですが、学習段階では自分で認証機能を作るべきです。
❌ ライブラリに頼ると起こる問題
- • 認証の仕組みがブラックボックスになる
- • セッション・Cookie・ハッシュ化の理解が浅くなる
- • カスタマイズが必要になった時に対応できない
- • エラーが出た時に原因が分からない
- • 面接で「なぜそう動くのか」を説明できない
✅ スクラッチで作ると得られるもの
- • セッションの仕組みが理解できる
- • パスワードハッシュ化の重要性が分かる
- • CSRF・XSS・SQLインジェクションなどのセキュリティ知識
- • ミドルウェアの動作が理解できる
- • 実務で応用が効く
- • 面接で自信を持って説明できる
学習の正しい順序
ステップ1: スクラッチで認証を作る
├─ ユーザー登録(Hash::make())
├─ ログイン(Auth::attempt())
├─ ログアウト
├─ ミドルウェアで保護
└─ セキュリティ対策
ステップ2: Breezeのコードを読む
├─ 自分の実装と何が違うか?
├─ なぜそう書かれているのか?
└─ 理解が何倍も深まる
ステップ3: 実務ではライブラリを使う
├─ 車輪の再発明をしない
├─ セキュリティが保証されている
└─ メンテナンスが楽
💡 重要なポイント
次の章では、スクラッチで認証機能を実装します。
Breezeは「仕組みを理解した後」に使うべきツールです。
まずは自分の手で作って、認証の仕組みを完全に理解しましょう。
まとめ
Laravel認証ライブラリについて学んだことをまとめます。
✅ この章で学んだこと
- 1. Breeze - シンプルな認証、小〜中規模向け
- 2. Jetstream - 高機能、SaaS向け
- 3. Fortify - バックエンドのみ、SPA向け
- 4. Sanctum - API認証、モバイル向け
- 5. Passport - OAuth2サーバー
- 6. Socialite - ソーシャルログイン
- 7. 学習方針 - まずスクラッチで作って理解する
🎉 認証ライブラリの紹介完了!
次の章では、スクラッチで認証機能を実装します。
セッション、Cookie、ハッシュ化、ミドルウェアなど、認証の仕組みを深く理解していきましょう。