[Laravel] 7.x 認証の導入とデータベースへの接続

Laravel 7.x での認証機能の導入方法です。Laravelには認証用のモジュールが用意されているので、インストールするだけで簡単に認証機能を導入することができます。

認証機能を自分で作成するとかなりの時間がかかりますし、セキュリティ部分の対応も必要になります。それらの労力を取られずに、簡単に機能を搭載できるのはフレームワークの利点ですね。

開発環境

Laravel 7.x ,MySQL 8.x , CentOS 7.x , Apach 2.4 ,Larav

Laravelプロジェクトの作成

# composer create-project --prefer-dist laravel/laravel MyProject

composerでLaravelプロジェクトを作成します。今回はMyProjectという名前にしました。こちらは任意の名前でOKです。

バージョンの確認

認証機能はバージョンによってインストールが変更になっています。今回はLaravel 7.x 用のインストールになるので、Laravelのバージョンを確認しておきます。

# cd MyProject
# php artisan -V

プロジェクトのディレクトリに移動して、バージョンを表示させるコマンドを実行します。
今回は「Laravel Framework 7.9.2」と表示されました。

「composer create-project –prefer-dist laravel/laravel」でバージョンを指定しないと、最新のものがインストールされます。

Laravelの起動確認

# php artisan serve --host xxx.xxx.xxx.xxx

artisanで開発サーバーを起動します。

ブラウザで http://www.example.com:8000 にアクセスします。

Laravelのページが表示されればうまくいっています。

2020-05-03_14h55_55

Laravel認証のインストール

laravel/uiのインストール

認証機能は laravel/uiパッケージを使ってインストールするので、まず laravel/ui をインストールします。
インストールはcomposerを使います。

# composer require laravel/ui

auth(認証)のインストール

laravel/ui のインストールが終わったら、authをインストールします。
Vueのauthはフロントエンドのフレームワークと連携が取れるようになっています。Vue , bootstarp , react などを選ぶことができます。

今回はVue.jsを使うことを想定しているので、フロントエンドにVueを指定します。

# php artisan ui vue --auth

インストールが成功すると下記のようなメッセージが出ます。

Vue scaffolding installed successfully.
Please run "npm install && npm run dev" to compile your fresh scaffolding.
Authentication scaffolding generated successfully.

「npm install && npm run dev」を実行してJavaScriptパッケージのインストールとコンパイルを行うという意味です。

これを実行したら、再度、ブラウザでアクセスしてみます。

# php artisan serve --host xxx.xxx.xxx.xxx

2020-05-03_15h23_31

右上に「LOGIN」「REGISTER」というリンクが出ています。
これで認証機能がインストールされました。

[LOGIN PAGE]
2020-05-05_09h21_37

[REGISTER PAGE]
2020-05-05_09h21_51

MySQLの接続

今回はMySQLへ接続します。
phpMyAdminやターミナルでプロジェクト用データベースを作成しておきます。
事前にMySQLの接続設定は終えているものとします。
開発実験用なので.envファイルにMySQLの設定しました。

テーブルの作成

Laravel認証に利用するテーブルはこれまでのインストールにより自動的に準備されています。

具体的には下記の3つのテーブルが作られます。
・create_users_table
・create_password_resets_table
・create_failed_jobs_table

この時点ではMySQLにはテーブルが作られていません。artisan migradeコマンドを実行すると自動的にMySQLにテーブルが作られます。

migrade

ターミナルでmigradeを実行します。

# php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (0.03 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (0.02 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (0.01 seconds)

ユーザー登録とログイン

RESISTERページからユーザーを登録してみます。登録が完了すると以下のようなメッセージが表示されてログイン状態になります。

2020-05-05_09h36_19



Author: webmaster