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のページが表示されればうまくいっています。
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
右上に「LOGIN」「REGISTER」というリンクが出ています。
これで認証機能がインストールされました。
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ページからユーザーを登録してみます。登録が完了すると以下のようなメッセージが表示されてログイン状態になります。