make:authが使えない
いつも通り認証機能を実装しようと、Laravelで用意されている「php artisan make:auth」コマンドを実行すると...
上記のようにmake:authコマンドなんて存在しないとエラーになった。
調査するとLaravel6系を使っていることが原因で5系まで使えていたmake:authが使えなくなっていた。
細かい変更な気がしますが、最新のバージョンを使う時は一通りドキュメント読むべきでした。
他にも変更点があるので下記リンクを参考にしてください。
Laravel6 authentication
Laravel6系で認証機能を実装する
それでは実装していきます。
はじめにパッケージのlaravel/uiをcomposerで追加する。
$ composer require laravel/ui --dev
ついでに、今まで標準でVue.jsやBootstrapが使えていましたが、6系からはこのパッケージを追加して使えるui artisanコマンドでインストールする必要があります。(reactもこの方法)
// Bootstrap
$ php artisan ui bootstrap
// Vue.js
$ php artisan ui vue
// React
$ php artisan ui react
認証機能は上記のコマンドに「--auth」を追加する事でmake:authと同様に利用できるようになります。
今回は、5系でデフォルトでは組み込まれていなかったreactで実行してみます。
// --authを追加する
$ php artisan ui react --auth
実装するとpackage.jsonにreactが追加されています。
"devDependencies": {
"@babel/preset-react": "^7.0.0",
"axios": "^0.19",
"bootstrap": "^4.0.0",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^4.0.7",
"lodash": "^4.17.13",
"popper.js": "^1.12",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"resolve-url-loader": "^2.3.1",
"sass": "^1.15.2",
"sass-loader": "^7.1.0"
}
npmでインストールとビルドする
$ npm install
$ npm run dev
Laravelの画面を見てみると、右上にLogin Registerが追加されています。
ログイン画面はこんな感じで表示され、Auth系のリソースも追加されています。
今回の経験で、バージョンによる違いをもっと意識する必要があると感じました。
以上です。