Laravel6.0で認証機能を実装する方法をまとめておきます。
今回はログイン周りを実装します。
前提条件
- PHP7.2以上がインストールされていること
- Laravel 6.0がインストールされていること
- mysqlがインストールされていること
Laravel 6.0のインストールがまだの人は以下の記事を参考にインストールしてください
早速実装していきましょう!
Laravelは簡単に認証機能を実装できる仕組みを整えてくれています。
まずは、以下のコマンドで必要なパッケージをインストールしましょう。
※プロジェクトに移動してから実行してください
composer require laravel/ui:^1.0
composer.jsonとcomposer.lockが更新されてはずです。
次に以下のコマンドを実行し、認証に必要なファイル群をインストールします。
本記事ではログイン周りのみ解説致しますが、今後パスワードリセットや新規登録のやり方も解説する予定ですので必要なファイルをすべてインストールします。
php artisan ui vue --auth

上記のメッセージが表示されていれば、インストール成功です!
インストールが成功すると6つのファイルが更新され、新たに11ファイルが作成されると思います。
新規作成されたファイルについては以下にまとめております。
認証機能に必要となるファイル郡が作成されます。
app/Http/Controller/HomeController.php | ユーザがログインした後にアプリが表示するホーム画面のコントローラ |
resources/js/components/ExampleComponent.vue | Vueコンポーネントのサンプル |
resources/sass/_variables.scss | Sassの変数を管理するファイル |
resources/views/auth/passwords/comfirm.blade.php | |
resources/views/auth/passwords/email.blade.php | パスワードリセット用のメール本文 |
resources/views/auth/passwords/reset.blade.php | パスワードリセット画面を構成するビュー |
resources/views/auth/login.blade.php | ログイン画面を構成するビュー |
resources/views/auth/register.blade.php | 新規登録画面を構成するビュー |
resources/views/auth/verify.blade.php | |
resources/views/home.blade.php | ホーム画面を構成するビュー |
resources/views/layouts/app.blade.php | 全画面の枠組みとなるビュー |
続いてコンパイルを行います。
以下のコマンドを実行してください
npm install && npm run dev
Compiled successfully in 10555mのように表示されていればコンパイル成功です!
public/css/app.cssとpublic/js/js.cssとして生成されているでしょう。
この中にコンパイル結果が格納されています。
テーブル作成
ログインに必要なユーザテーブルの作成を行います。
作成と言っても、laravelが事前にマイグレーションファイルを用意してくれてます。
なので、そのマイグレーションファイルを読み込ませるだけで完了です。
事前に.envファイルにDBの環境情報を設定しておいてください
ファイル名:vender/.env (省略) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE={データベース名} DB_USERNAME={ユーザ名} DB_PASSWORD={パスワード} (省略)
環境情報の設定ができていれば、以下のコマンドを実行してください。
php artisan migrate

userテーブルとパスワードリセットテーブルと失敗したジョブが格納されるテーブルが作成されます。
もし失敗する場合は、app/Providers/AppServiceProvides.phpに2行追加してください
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Schema; //追加 (省略) public function boot() { Schema::defaultStringLength(191); //追加 } }
以上でログイン機能が使えるようになります。
動作確認
事前に画面右上のREGISTERボタンからユーザ登録を行なってください。

上記の動きが再現できれば完了です。
お疲れ様でした。
今回の作業で新規登録機能やパスワードリセット機能も作成されておりますが、メールアドレスの確認等ができておりません。
このままだと本人確認をしないまま登録できてしまいます。
したがって、次回メールアドレスの確認処理を組み込み、新規登録機能を完成させたいと思います。
では、その2でお会いしましょう!