Laravel6.0 認証 (make:Authが無くなった)

2019.11.27 (水)

make:Authが使えなくなったので以下の手順。

UIをcomposerで入手

$ php composer.phar require laravel/ui

認証関連のファイル作成

$ php artisan ui vue --auth

マイグレーション

$ php artisan migrate

css/js関連 ビルド

$ npm install
$ npm run dev

基本的な使い方

Registerメニューがホーム右上に新しく作成されるので、そこから登録します。デフォルトでは、登録後すぐにログインできるという仕様になっています。つまりダミーのEmailアドレスでも登録できてしまうので、ここらの認証機能などは自分たちでカスタマイズしないといけないことになります。暗号化や認証の方法などは結構しっかりしているのでそのまま使うという方針でいきます。

Authを有効にすると以下のファイルが更新または新規作成されます。

app/Http/Controllers/HomeController.php
database/migrations/2019_11_27_094634_create_sessions_table.php
    modified:   package.json
    modified:   resources/js/app.js
    modified:   resources/js/bootstrap.js
    new file:   resources/js/components/ExampleComponent.vue
    new file:   resources/sass/_variables.scss
    modified:   resources/sass/app.scss
    new file:   resources/views/auth/login.blade.php
    new file:   resources/views/auth/passwords/confirm.blade.php
    new file:   resources/views/auth/passwords/email.blade.php
    new file:   resources/views/auth/passwords/reset.blade.php
    new file:   resources/views/auth/register.blade.php
    new file:   resources/views/auth/verify.blade.php
    new file:   resources/views/home.blade.php
    new file:   resources/views/layouts/app.blade.php
    modified:   routes/web.php
    modified:   webpack.mix.js

見ての通り認証機能はあらかじめ組み込まれていて、それをつなぎGUIが生成されているというだけで特に機能追加といったものではないことがわかります。追加されているコアは、ユーザー認証のためのデータベーステーブルの作成(マイグレーション)と、HomeControler.phpにあらかじめ組み込まれたクラスを呼び出すように指示しているというだけです。
それではLaravelの認証機能の解説とカスタマイズの方法を見てゆきます。

URL

認証機能で追加されているURLは、

/register         メンバー登録画面
/login            ログイン画面
/home             認証後のメンバーページのホーム(トップ)画面
/                 ログアウト後のジャンプ先
/password/reset   パスワードリセット画面

/はそもそも既存のURLですが、認証機能を追加することでリダイレクト先になっています。

登録のフロー

登録画面のルーティングを見てみると、

Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

というものが書かれています。認証に関するルーティングはAuth::routes()を呼ぶことでひとまとめになっています。ログイン後のメンバーページの設定が/homeとして登録されています。