Laravel7.x環境でログイン機能を設定する


はじめに

最新版の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機能がバージョンによって管理が異なるのは想定外でした。