Laravel Breezeとは?インストールから認証機能・日本語化・カスタマイズまで徹底解説

実装・応用テクニック

「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.phppagination.phppasswords.phpvalidation.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.phpstore()メソッドにあるバリデーションルールと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 --devphp artisan breeze:installだけで問題なく導入できます。まずはBladeスタックで試し、チーム機能や2要素認証が必要になったタイミングでJetstreamへの移行を検討するとよいでしょう。

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする

コメント