なんか今年頭はLaravel5系を触っていたのだけれど、既にLaravelは8系まで出てきている。 それはいいんだけど、なんか認証周りがずいぶん変わってしまったようなのでとりあえずメモ。

Laravel5 make:auth

Laravelはインストールした時点でapp/Http/Controllers/Authが作成されているから、ログイン周りはこれをそのまんま使える。 artisan make:authでデフォルトのviewとrouteが入れられるから、ものすごくシンプル。

Laravel6 ui vue

Laravel6になるとvueを前提のフロントエンドを想定しているのか、
php artisan ui vue --auth
のようなLaravel UIでauth画面を作るようになった。 これはこれでapp/Http/Controllers/Authは残っているから、フロントエンドにvueを使いたくなければLaravel5のviewをそのまま持ってきても動くはず。

Laravel8 JetStream

しかしLaravel8になると、app/Http/Controllers/Authさえも消え去ってしまう。 同様の機能はLaravel JetStreamというボールペンみたいな名前の機能が出てきたため、これを使う。 で、JetStreamにも種類がある。 livewireとかinertiaとか。 これあまり好きじゃないなあ。一年でこれは変えすぎな気がするし、ミニマムに作ろうと思っても余計な機能が増えすぎてちょっと戸惑ってしまうのではないか。

試してみる

とりあえず他所のサイトを見る限り、
composer require laravel/jetstream
php artisan jetstream:install livewire

php artisan migrate

npm install
npm run dev
こんな感じっぽい。 routesには
Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
    return view('dashboard');
})->name('dashboard');
こんな感じのものが増えていたけど、Auth::routes()が無いね。 loginとかのルーティングはどこでやってるんだこれ? とりあえず今回はここまで。