Laravelには認証機能を自動生成する機能がある
Laravelではphp artisan make:auth
コマンドを使用して
自動で認証機能を作成する機能があります。
このコマンドを実行すると、Laravelが認証に必要なコントローラー、モデル、ビュー、およびルーティングを自動的に生成します。
php artisan make:authが失敗した原因について
$ php artisan make:auth
エラーメッセージ
$ Command "make:auth" is not defined. Did you mean one of these?
結論
php artisan make:auth`はLaravel 5.7以降では使えないコマンドでした
理由
make:authコマンドはLaravel 5.6までのバージョンで提供されていました。
Laravel 5.7以降では、make:authコマンドはデフォルトで提供されなくなりました。
正確にはバージョン6以降からmake:authコマンドによる自動で認証機能を作成する機能が無くなっているため認証機能を自動で作成したい場合は、他の手段を選択する必要があります
バージョン6以降で認証機能を付与したい
Laravelバージョン6以降で認証機能を作成するためにはLaravel公式推奨のコマンドで引き続き自動作成できます。
- 方法①:laravel/uiで認証機能などのテンプレートを作成する
- 方法②:jetstreamで認証機能のテンプレートを作成する
laravel/uiについて
Laravelで利用できるUI(ユーザーインターフェース)のテンプレートを提供するコマンドです。
laravel/ui関連のコマンドを実行すると自動で認証機能などに必要なファイルを作ったり
既存のweb.phpファイルにルートを追記してくれます
バージョンがLaravel 8以前の場合
laravel/uiパッケージはデフォルトで含まれていないので、composerを使ってインターネットから
laravel/uiを追加インストールしなければ以降のコマンドを実行できません
インターネット経由で"laravel/ui"をインストールする
$ composer require laravel/ui
laravel/uiで認証機能を作成するコマンド
laravel/uiで認証機能の雛形を作る
(例:ログイン、登録、パスワードリセットのビューとルートを作成)
$ php artisan ui vue --auth
$ php artisan ui bootstrap --auth
$ npm install
$ npm run dev
コマンド実行完了後はブラウザを実際に見る
jetstreamについて
Laravelフレームワークの公式パッケージで、一般的な認証機能やユーザー管理に加えて、チーム管理、2要素認証、API認証など、さまざまな機能を提供します。設定が難しいとされているため、セキュリティの強度を求めない場合はlaravel/uiで実装することになると思いますので割愛します