BLOG
ブログ

2021.03.31

Laravel8の認証・認可のscaffoldまとめ

laravel8にログイン機能を付ける場合、自前でログイン機能を作ることもできますが、用意されているscaffold(足場)を利用することが多いでしょう。
laravel8で使えるscaffoldは以下があります。

Laravel Jetstream(Livewire)
Laravel Jetstream(Inertia.js)
Laravel Breeze
Laravel Fortify
Laravel Sanctum
Laravel UI

多い!
ログイン機能はプロダクトのベースとなり頻繁に変えるものでもないため、選択肢が多いと私はすぐに忘れる自信があります。
そのため、覚書としてこの記事を書いてみました。

Laravel Jetstream

Laravel Jetstreamをインストールする際にLivewireとInertiaのどちらを利用するか選択することができます。

Livewireはphpでjavascriptのような再描画なしの画面操作ができます。自分の常識が崩れます。
https://laravel-livewire.com/

Inertia.jsはaxiosなどを利用してAPIでデータ送受信していたものが不要になるそうです。こちらも自分の常識が崩れます。
https://inertiajs.com/

//Laravelをインストールします。
//composerでのインストール解説になります。
composer create-project laravel/laravel app-name

//データベースと繋げるために.envとconfig/database.phpの設定をします。

//Laravel Jetstreamのインストールします。今回はLivewire
php artisan jetstream:install livewire

//Inertia.jsの場合は
php artisan jetstream:install inertia

//マイグレーション
php artisan migrate

//パッケージのインストール
npm install

//ビルド
npm run dev

//ビルトインサーバーの立ち上げ
php artisan serve

Livewireは認証、認可、メール検証、2段階認証、セッション管理、パスワードリセットなど機能が盛りだくさんです。
メニューをクリックした際のアニメーションやパスワード変更した際の完了メッセージなどにLivewireが使用されています。
javascriptのパッケージはlaravel-mixやtailwindcssが入っていますが、vue.jsは入っていません。Inertia.jsですとvue.jsが入ります。

Laravel Breeze

Laravel BreezeはLaravel Jetstreamに比べ機能が少ないシンプルなログイン機能で認可、認証、メール検証、パスワードリセットなどの最低限の機能は入っています。
Lalavel7まで標準だったLaravel uiのバージョンアップ版みたいな位置づけでしょうか

//Laravelをインストール
composer create-project laravel/laravel app-name

//データベースと繋げるために.envとconfig/database.phpの設定をします。

//Laravel Breezeをインストール
composer require laravel/breeze --dev

//Laravel Breezeのscaffoldを作ります。
php artisan breeze:install

//マイグレーション
php artisan migrate

//パッケージのインストール
npm install

//ビルド
npm run dev

//ビルトインサーバーの立ち上げ
php artisan serve

javascriptのパッケージはこちらもlaravel-mixやtailwindcssが入っていますが、vue.jsは入っていません。

Laravel Fortify

Laravel FortifyはLaravel Breezeの認証機能のコア機能で認証バックエンドを提供してくれます。フロントエンド部分を自分で作りたい場合はこちらがよいでしょう。

//Laravelをインストール
composer create-project laravel/laravel app-name

//データベースと繋げるために.envとconfig/database.phpの設定をします。

//Laravel Fortifyをインストール
composer require laravel/fortify

//Fortifyのリソースを公開
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"

//マイグレーション
php artisan migrate

//ビルトインサーバーの立ち上げ
php artisan serve

php artisan route:listしてみるとルーティングはできていますが、そのrouteにアクセスしてみますとフロントエンドがないため、エラーになります。
Laravel FortifyはLivewireとInertiaを使用しない場合の選択肢になります。

Laravel UI

laravel7まで標準だった認証機能。laravel8でも使えます。
jetstreamに比べ、認証・認可、パスワードリセットと機能は少ないです。

//Laravelをインストールします。
composer create-project laravel/laravel app-name

//データベースと繋げるために.envとconfig/database.phpの設定をします。

//laravel/uiをインストールします。
composer require laravel/ui

//laravel/uiのscaffoldを作ります。
php artisan ui vue

//マイグレーション
php artisan migrate

//ビルトインサーバーの立ち上げ
php artisan serve

javascriptのパッケージはbootstrap、jquery、vue.jsなどが入っています。

まとめ

laravel8には認証・認可のscaffoldがいくつかあるため、最初は混乱しますが、
それぞれの特徴を知った上で自分に合ったものが選べるメリットがあります。

CONTACT

下記のフォームに必要事項を記入してください。※お問い合わせの際には個人情報保護方針のご確認をお願い致します。

会社名
お名前必須
ご住所
郵便番号
都道府県
市区町村
町名番地等
建物名
お電話番号必須
- -
メールアドレス必須
お問い合わせ内容必須
メッセージ