Laravel 6.0で認証機能の実装方法を解説 その1

Laravel
スポンサーリンク

Laravel6.0で認証機能を実装する方法をまとめておきます。

今回はログイン周りを実装します。

前提条件

  • PHP7.2以上がインストールされていること
  • Laravel 6.0がインストールされていること
  • mysqlがインストールされていること

Laravel 6.0のインストールがまだの人は以下の記事を参考にインストールしてください

早速実装していきましょう!

Laravelは簡単に認証機能を実装できる仕組みを整えてくれています。

まずは、以下のコマンドで必要なパッケージをインストールしましょう。

※プロジェクトに移動してから実行してください

composer require laravel/ui:^1.0

composer.jsoncomposer.lockが更新されてはずです。

次に以下のコマンドを実行し、認証に必要なファイル群をインストールします。

本記事ではログイン周りのみ解説致しますが、今後パスワードリセットや新規登録のやり方も解説する予定ですので必要なファイルをすべてインストールします。

php artisan ui vue --auth

上記のメッセージが表示されていれば、インストール成功です!

インストールが成功すると6つのファイルが更新され、新たに11ファイルが作成されると思います。

新規作成されたファイルについては以下にまとめております。

認証機能に必要となるファイル郡が作成されます。

app/Http/Controller/HomeController.phpユーザがログインした後にアプリが表示するホーム画面のコントローラ
resources/js/components/ExampleComponent.vueVueコンポーネントのサンプル
resources/sass/_variables.scssSassの変数を管理するファイル
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でお会いしましょう!

Laravel
スポンサーリンク
エンジニアの日記

コメント