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がいくつかあるため、最初は混乱しますが、
それぞれの特徴を知った上で自分に合ったものが選べるメリットがあります。
Type1フォントが使えなくなる!
WEB初心者の雑感
厳選5つ!動画配信プラットフォームについて
【緊急事態】困った、ブログが書けないっ!そんな時に使いたい記事ネタ&書き方のコツ
【初級編】XDからコーディングしてみよう!
IE遂にサポート終了!今までお疲れ様でした!
microCMSをphpで使ってみる
採用強化の手段は求人サイトだけじゃない?おすすめ施策3つを紹介!
IT導入補助金2022の支援事業者として採択されました。【福島県】ECサイト制作
Google Fonts おすすめ日本語フォント
【漫画はお好きですか?】注目度◎マンガ広告取り扱い開始!