「Laravel Breeze」は、Laravelでユーザー認証機能をすばやく構築するための公式スターターキットです。ただしLaravel 12以降、laravel newコマンドの対話式インストーラーが提供する公式スターターキットはReact・Vue・Livewire・Svelteが中心となり、Breezeはこの一覧には含まれなくなりました。とはいえBreeze自体のパッケージは現在も更新が続いており、Laravel 13環境でも問題なく動作します。本記事では実際にLaravel 13にBreezeをインストールして動作検証した内容をもとに、導入手順・認証機能の中身・日本語化・カスタマイズ方法までを解説します。
Laravel Breezeとは
Laravel Breezeは、ログイン・会員登録・パスワードリセット・メール認証といった認証まわりの機能一式を、シンプルなコントローラとBladeビューの形で自分のプロジェクトに直接展開するパッケージです。Laravel Jetstreamのようにパッケージ内部に隠蔽された仕組みではなく、生成されたコードがそのままアプリケーションのソースになるため、中身を読んで理解しながらカスタマイズしたい場合に向いています。
選べるスタック
php artisan breeze:installコマンドで、以下6種類のスタックから選択してインストールできます(Laravel 13 / laravel/breeze 2.4系で確認)。
| スタック | 概要 |
|---|---|
blade |
BladeテンプレートとTailwind CSSによるシンプルな構成。追加のJSフレームワークが不要な場合に最適 |
livewire |
Livewireコンポーネントベースの認証画面 |
livewire-functional |
Livewireのファンクショナルコンポーネント記法版 |
react |
Inertia.js + Reactによるフロントエンド |
vue |
Inertia.js + Vueによるフロントエンド |
api |
SPAやモバイルアプリ向けに、Sanctumを使ったAPI認証のみを構築 |
さらに--dark(ダークモード対応)、--pest(Pestでのテスト生成)、--ssr(Inertiaのサーバーサイドレンダリング)、--typescript、--eslintといったオプションも組み合わせられます。
Laravel Breezeのインストール手順(実機検証済み)
PHP 8.3・Composer 2.9・Node.js 24環境で、実際にLaravel 13プロジェクトへBreezeを導入して動作確認した手順です。
1. Laravelプロジェクトを作成する
composer create-project laravel/laravel example-app
Laravel 13以降はこのコマンド1回で、SQLiteデータベースファイルの作成・.envのキー生成・初期マイグレーションまで自動的に完了します。データベースを別途用意する必要はありません。
2. Breezeパッケージを追加する
cd example-app
composer require laravel/breeze --dev
3. スタックを指定してインストールする
前述のスタック一覧から選び、次のように実行します(Bladeスタックの例)。
php artisan breeze:install blade
このコマンド1回で、認証用のルート・コントローラ・Bladeビューの生成に加えて、npm installとフロントエンド資産のビルドまで自動で実行されます。React/Vueスタックを使う場合は次のように指定します。
php artisan breeze:install react --ssr
php artisan breeze:install vue --dark
4. 認証用テーブルをマイグレーションする
php artisan migrate
新規プロジェクトの場合、手順1の時点でusersテーブルなどはすでにマイグレーション済みのため、このコマンドは「Nothing to migrate」と表示されることがあります。既存プロジェクトに追加した場合はここで認証用テーブルが作成されます。
5. 動作を確認する
php artisan serve
http://localhost:8000/registerにアクセスすると会員登録画面、/loginにアクセスするとログイン画面が表示されます。Bladeスタックの場合、これらのビューはresources/views/auth/配下に生成され、ルート定義はroutes/auth.phpに追加されます。
Breezeが用意する認証機能
インストール後、以下の機能がすぐに使える状態になります。
- 会員登録・ログイン・ログアウト
- パスワード忘れ・再設定(メールでのリセットリンク送信)
- メールアドレス確認(
MustVerifyEmailを利用する場合) - ログイン中のパスワード再確認(重要な操作の前に再認証を求める機能)
- プロフィール編集・アカウント削除(
routes/web.phpに追加されるProfileController関連のルート)
これらはすべてApp\Http\Controllers\Auth配下のコントローラと通常のBladeビュー(またはInertiaページ)として生成されるため、必要な部分だけを編集・削除して自由にカスタマイズできます。
Laravel Breezeを日本語化する方法(実機検証済み)
Laravel 9以降、言語ファイルはプロジェクトルート直下のlang/ディレクトリに置く方式に変わっています(旧resources/lang/は使いません)。以下の手順で日本語化します。
1. 言語ファイルを公開する
php artisan lang:publish
実行するとlang/en/配下にauth.php・pagination.php・passwords.php・validation.phpが生成されます。これをコピーして日本語版を作成します。
cp -r lang/en lang/ja
lang/ja/auth.phpを開き、メッセージを日本語に翻訳します。
return [
'failed' => 'メールアドレスまたはパスワードが正しくありません。',
'password' => 'パスワードが正しくありません。',
'throttle' => 'ログイン試行回数が多すぎます。:seconds秒後に再試行してください。',
];
2. 画面上のラベル文字列を翻訳する
BladeスタックのビューはBladeスタックのビューは__('Email')や__('Password')のように、ドット区切りでないキーで__()ヘルパーを呼び出しています。この形式の文字列はlang/{ロケール名}.jsonという単一のJSONファイルで翻訳されます。プロジェクトルート直下にlang/ja.jsonを作成します。
{
"Email": "メールアドレス",
"Password": "パスワード",
"Confirm Password": "パスワード(確認)",
"Remember me": "ログイン状態を保持する",
"Forgot your password?": "パスワードをお忘れですか?",
"Name": "名前",
"Register": "会員登録",
"Already registered?": "登録済みの方はこちら"
}
3. アプリケーションのロケールを日本語に設定する
.envに以下を追加します。
APP_LOCALE=ja
APP_FALLBACK_LOCALE=en
config/app.phpを直接書き換える方法も動作しますが、環境ごとに切り替えられる.envでの設定が推奨です。設定後、/registerや/loginにアクセスし、ラベルやバリデーションメッセージが日本語で表示されることを確認してください。
カスタマイズの例
フロントエンドの見た目を変更する
BladeスタックはデフォルトでTailwind CSSを使用しています。resources/views/auth/配下のBladeファイルとコンポーネント(resources/views/components/)を直接編集すれば、クラス名の変更やレイアウトの調整がそのまま反映されます。
登録時に追加項目を保存する
会員登録時に電話番号など独自の項目を追加したい場合は、app/Http/Controllers/Auth/RegisteredUserController.phpのstore()メソッドにあるバリデーションルールとUser::create()の引数を編集します。あわせて対応するBladeの入力欄をregister.blade.phpに追加します。
ソーシャルログインを追加する
Google・GitHubなどでのログインを追加したい場合は、laravel/socialiteパッケージを組み合わせてAuthenticatedSessionControllerにリダイレクト用のルートを追加する方法が一般的です。
Laravel Jetstream・Fortifyとの違い
Laravelの認証系パッケージは目的に応じて使い分けます。
| パッケージ | 特徴 | 向いているケース |
|---|---|---|
| Breeze | コードがそのままプロジェクトに展開される。軽量でシンプル | 認証まわりを自分で読んで理解・カスタマイズしたい小〜中規模プロジェクト |
| Jetstream | チーム管理・2要素認証・APIトークン(Sanctum)など高機能。Livewire/Inertiaベース | チーム機能や2FAが最初から必要な本格的なSaaS等 |
| Fortify | ビューを持たないヘッドレスな認証バックエンド | 独自デザインのフロントエンドを一から作り、認証ロジックだけ流用したい場合 |
チーム機能や2要素認証が必要になった場合はLaravel Jetstreamで始める!モダンなWebアプリケーションを迅速に構築する方法、コマンドの詳細はjetstream:install — Jetstreamをインストールするコマンド、ヘッドレス認証についてはfortify:install — Fortifyをインストールするコマンドもあわせて確認してください。
よくある質問
Laravel 12・13でもBreezeは使えますか?
使えます。本記事はLaravel 13.20 + laravel/breeze 2.4系で実際にインストールして確認しています。ただしlaravel newの対話式インストーラーの選択肢には含まれなくなったため、プロジェクト作成後にcomposer require laravel/breeze --devで個別に追加する必要があります。
React・Vueプロジェクトでも使えますか?
使えます。php artisan breeze:install reactまたはvueを指定すると、Inertia.jsを使ったSPA構成の認証画面一式が生成されます。
APIのみ(フロントエンドなし)で使いたい場合は?
php artisan breeze:install apiを実行すると、Sanctumによるトークンベース認証のAPIエンドポイントのみが生成されます。SPAやモバイルアプリのバックエンドとして利用できます。
まとめ
Laravel Breezeは、認証機能のコードをそのまま自分のプロジェクトに展開できる、軽量で理解しやすい認証スターターキットです。Laravel 12以降で公式インストーラーの選択肢からは外れましたが、パッケージ自体は現在も更新が続いており、Laravel 13でもcomposer require laravel/breeze --devとphp artisan breeze:installだけで問題なく導入できます。まずはBladeスタックで試し、チーム機能や2要素認証が必要になったタイミングでJetstreamへの移行を検討するとよいでしょう。

コメント