フレームワーク

超簡単!Laravelユーザ登録からログイン認証の作成方法!!

フレームワーク

通販サイト等のシステムには、基本的にシステムの利用するユーザの管理やログイン機能という物が存在します。
この記事を読んでいる皆さんも、IDやメールアドレス、パスワードを入力してログインしたことはあるのではないでしょうか。ここでは超簡単なLaravel式ユーザ登録からログイン機能の作成方法を紹介していきます。

実行環境

Laravel5では、ユーザの作成機能やログイン機能が簡単に作れるので紹介したいと思います。
OS:Windows10
XAMPP
 PHP:7.1.29
 mysql Ver 15.1 Distrib 10.2.10-MariaDB, for Win64 (AMD64)
Laravel Framework 5.8.38

プロジェクトの作成

今回は、「laravel_sample_system」という名前でプロジェクト作成して実装していきます。
※既にプロジェクトを作ってある人は飛ばしてください。
コマンド

composer create-project --prefer-dist laravel/laravel laravel_sample_system "5.8.*"

※Laravelの環境構築についてはこちら

データベースの作成

今回は、「sample_system」というDBをphpmyadminで作成してユーザ管理していきます。
まず、phpMyAdminを開き、左サイドバー上部にあるNewをクリックします。
※既にDBを作成している人は、飛ばしてください。

次にデータベース名に「sample_system」を入力し、
その左側のセレクトボックスで「utf8mb4_general_ci」を選択して「作成」ボタンを押します。

※この時点ではDBの中身は空です。

次にプロジェクトのディレクトリにある「.env」ファイルを開いて以下のように変更して保存します。

DB_DATABASE=laravel

DB_DATABASE=sample_system

認証機能・ usersテーブルの作成

認証機能の作成

プロジェクトのディレクトリで以下のコマンドを実行します。

php artisan make:auth

usersテーブルの作成

Laravelではマイグレーションを行うことによってユーザを登録する為のテーブル(users)を作成することができます。
マイグレーションとは、一度定義したテーブルを簡単にDBで作成することができる機能です。
詳しくは別の記事で紹介したいと思います。

以下のコマンドでusersテーブルを作成することができます。

php artisan migrate
コマンド実行時のコンソール

※既にusersテーブルなどが作られている場合、エラーになります。
 その場合、そのまま既に作られているusersテーブルを使用するか、一度usersテーブルの名称を変換させてから実施してみてください。

上記コマンドを実行後にphpMyAdmin上でDBを確認すると以下の画像のようになります。

サイドバーのsample_systemの表記
「sample_system」DBの構造
「users」テーブルの構造
カラム名用途
idプライマリキー
nameユーザの名称
emailログインやパスワードリセットの際に使用するメールアドレス
email_verified_atメールによる本人確認日時
passwordパスワード
remember_tokenクッキー情報の記録
created_atレコード作成日時
updated_atレコード更新日時

一部Laravelが使う為のカラムがありますが、カラムを追加したりすることでシステム固有のデータを保持できるようになります。

実装の確認

上記まででユーザの登録機能と認証機能の作成ができました。
ユーザ登録してログインするところまで確認してみましょう!

apache等で特に設定を変更していなければ以下のアドレスでユーザ登録画面を開くことができます。

http://localhost/laravel_sample_system/public/register
ユーザ登録画面

次に各種入力して「Register」ボタンを押してみましょう。
これだけでユーザの登録が可能です。

登録画面にてユーザ情報を入力

DBを見てみましょう。
以下の様になっていれば登録されています。
パスワードは誰でも簡単に確認できないようにハッシュ化して登録されます。

次にログイン機能を試してみましょう。
画面右上のユーザ名のリンクにカーソルをあわせると「Logout」が表示されるのでクリックするとログアウトします。

ログアウト後の画面

次に画面右上の「LOGIN」リンクをクリックすることでログイン画面に遷移することができます。
この画面で先ほど登録したユーザのメールアドレスとパスワードを入力して「Login」ボタンを押すとログインすることができます。

ログイン画面

カスタマイズする場合

以下にユーザやログイン画面に関するプログラムがあるので項目を増やす場合は、こちらをカスタマイズしてみてください。

コントローラ(Controller)

ディレクトリ
app\Http\Controllers\Auth

<RegisterController.php>
ユーザ登録画面のコントローラです。
ユーザ登録項目を増減する場合は、ここを編集する必要があります。

<LoginController.php>
ログイン画面のコントローラです。
ログイン項目を変更する場合は、ここを編集する必要があります。

<VerificationController.php>
ログイン後の画面のコントローラです。

ビュー(View)

ディレクトリ
resources\views\auth

<register.blade.php>
ユーザ登録画面のビューです。
登録項目やレイアウトを変更、追加する場合は、こちらを修正します。

<login.blade.php>
ログイン画面のビューです。
ログイン項目やレイアウトを変更、追加する場合は、こちらを修正します。

<verify.blade.php>
ログイン後の画面のビューです。
項目やレイアウトを変更、追加する場合は、こちらを修正します。

モデル(Model)

app\User.php
(Userモデル)
主にusersテーブルとのやりとりを担うクラスです。

まとめ

Laravel5では、ユーザ登録機能やログイン認証機能は、コマンドのみで作れることができます。
ここでは触れませんでしたが、「パスワードリセット」機能も追加されています。
コマンド実行後にどのようなファイルが作成されているかなどよく見ていきましょう。
実際のシステムでは、ユーザ登録はログイン後のみにしたりと変更を加える必要があります。
認証機能のカスタマイズに関しては、別途記事にしていきたいと思います。

おススメ記事

タイトルとURLをコピーしました