Laravel8ではJetStream機能が追加され、認証機能を利用するためにはInertia.jsかLivewireを選択してインストールを行う必要がありました。JetStreamを利用せず認証機能を利用したい場合は新たにBreezeパッケージを利用することで認証機能を利用することができます。

JetStreamなど多機能でInertis.jsやLivewireのことを考えないといけないのでLaravelの入門者にとってはハードルが高かったのですが、このパッケージのおかげでこれまでのLaravel7のlaravel/uiのようにシンプルな方法で認証機能を利用することができます。vueはインストールされませんが、Alpine.jsが一緒にインストールされます。

Laravelのインストール

Laravelのインストールを行ってください。JetStreamをインストールする際の–jetオプションは必要ありません。


 % laravel new laravel_breeze

Laravel Breezeパッケージのインストール

Laravelインストール完了後、Laravel/Breezeパッケージのインストールを行います。


 % cd laravel_breeze
 % composer require laravel/breeze

パッケージが完了したら、php artisan breeze:installコマンドを実行してください。


 % php artisan breeze:install
Breeze scaffolding installed successfully.
Please execute the "npm install && npm run dev" command to build your assets.

実行するとnpm install && npm run devを実行するようにメッセージが表示されるのでnpmコマンドを実行してください。


 % npm install && npm run dev

以上で設定は完了です。php artisan serveコマンドで開発サーバを起動すると右上にregisterとloginのリンクが表示されます。

Breezeパッケージをインストールして設定を行わないと認証機能はありません。
Laravel初期画面右上にリンク
Laravel初期画面右上にリンク

右上のRegisterリンクをクリックするとユーザの登録画面が表示されます。

ユーザ登録画面
ユーザ登録画面

Loginのリンクをクリックすると下記のログイン画面が表示されます。

ユーザログイン画面
ユーザログイン画面

ユーザを作成して、ログインを行うと下記のダッシュボード画面が表示されます。

ダッシュボード画面
ダッシュボード画面

関連するファイル

Breezeの認証機能でどのようなファイルが追加されたかはlaravel/breezeインストール後に作成されるvendor¥laravel¥breeze¥src¥Consoleの下にあるInstallCommand.phpファイルを見ると確認することができます。

例えば追加されたルーティングを知りたい場合はweb.phpファイルに新たに追加のルーティングの行が追加されているので、routesディレクトリの下にあるauth.phpファイルを見ることで確認できます。


Route::get('/', function () {
    return view('welcome');
});

Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware(['auth'])->name('dashboard');

require __DIR__.'/auth.php';  //これが追加

認証に関するコントローラーはHttp¥Controllers¥Authの下に保存されます。

ユーザ登録画面やログイン画面を変更したい場合は、resources¥viewsの下にあるauth、componentsディレクトリのBladeファイルを更新することで行うことができます。