はじめに
最新版のLaravel7.xに認証機能を導入する過程で、下記コマンドを実行したところ、そんなコマンドは存在しないと言われました。
$ php artisan make:auth
Command "make:auth" is not defined.
Did you mean one of these?
make:cast
make:channel
make:command
make:component
make:controller
make:event
make:exception
make:factory
make:job
make:listener
make:mail
make:middleware
make:migration
make:model
make:notification
make:observer
make:policy
make:provider
make:request
make:resource
make:rule
make:seeder
make:test
いきなりつまずきましたが、なんとLaravel6.x系からmake:authはつかてなくなっているみたいです。
今回はLaravel7.xにログイン機能を導入するための備忘録です。
laravel/uiをインストールする
Laravel6.x系からはログイン機能は「Laravel/ui」で管理される様になったようです。
ですので、早速laravel/uiをインストールします。
$ composer require laravel/ui
Using version ^2.0 for laravel/ui
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing laravel/ui (v2.0.3): Downloading (100%)
〜略〜
こんな感じでインストールが完了です。
実装
laravel/uiでは実装方法を選ぶことができます。
- Vueで実装する場合
$ php artisan ui vue --auth
- Reactで実装する場合
$ php artisan ui react --auth
今回は Reactで実装します。
$ php artisan ui react --auth
React scaffolding installed successfully.
Please run "npm install && npm run dev" to compile your fresh scaffolding.
Authentication scaffolding generated successfully.
上記実行後、migrationファイルが作成されますので、以下コマンドを実行しマイグレートします。
$ php artisan migrate
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (0.02 seconds)
上記実行後、「password_resets」テーブルが作成されます。
mysql> show columns from password_resets;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| email | varchar(255) | NO | MUL | NULL | |
| token | varchar(255) | NO | | NULL | |
| created_at | timestamp | YES | | NULL | |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
注意点
laravel/uiをインストールし、artisanコマンドで実装すると、自動的にHomeControllerが作成(すでに存在している場合は上書き)されるので、注意してください。
さいごに
auth機能がバージョンによって管理が異なるのは想定外でした。