Edited at

Laravel5.5こと始め 〜2. ユーザログイン機能の追加〜

More than 1 year has passed since last update.


内容

以下の順番にまとめます。

1. MacへのXAMPP+Laravelインストール

2. ユーザログイン機能の追加 ←いまここ

3. MVCとルーティングの説明

4. ユーザリストの表示

5. ユーザリストのペジネーション表示

6. ユーザ管理APIの追加

7. Vue.jsとAPIベースのユーザ管理アプリの追加準備

8. Vue.jsとAPIベースのユーザ管理アプリの追加

9. Vue.jsとAPIベースのユーザ管理アプリへのペジネーション追加

10. APIへのJWTAuth認証の追加

11. Vue.jsとAPIベースのユーザ管理アプリへの認証の追加


2. ユーザログイン機能の追加

先程作成したLaravelプロジェクト「userauth」にユーザ登録とログインの機能を追加します。


2.1. Laravelプロジェクトに認証機能を追加します。

$ php artisan make:auth

Authentication scaffolding generated successfully.


2.2. AppServiceProvider.phpの修正

MySQLのver5.7.7より前では、PRIMARY_KEYおよびUNIQUE_KEYを付けたカラムには最大767bytesまでしか入らないのですが、Laravel5.4からは標準charasetがutf8mb4となったことで1文字あたりの最大byte数が4bytesに増えたこともあり、デフォルトのままではエラーが発生します。そのため、「app/Providers/AppServiceProvider.php」を以下のとおり修正します。


app/Providers/AppServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema; // 追加

...(中略)

public function boot()
{
Schema::defaultStringLength(191); // 追加
}

...(中略)



2.3. Laravelの環境設定ファイルである.envファイルの編集

プロジェクトフォルダの直下にLaravelプロジェクトがグローバルで利用する環境変数を設定するファイル.envファイルがあります。ユーザ登録のためのデータベースとテーブルを用意する必要がありますので、下記の通りMySQLデータベースに関連する情報を設定します。

DB_CONNECTION=mysql

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test # インストール時にテスト用に作成されたデータベース。必要に応じてcreate databaseしたデータベースをセットしてもかまいません。
DB_USERNAME=root # 本番ではアクセス用のユーザを作成が推奨されますが、ここでは簡単にrootを使います。
DB_PASSWORD=secret # 「Laravel5.5こと始め 〜1. MacへのXAMPP+Laravelインストール〜」で設定したパスワードを設定します。


2.4. Laravelのマイグレーション機能を使ってユーザテーブルを作成

Laravelは非常に高度なデータベースのマイグレーション機能をもっています。認証機能を有効にすると「database/migration」フォルダに下記のPHPファイルがコピーされます。

$ ls database/migrations/

2014_10_12_000000_create_users_table.php 2014_10_12_100000_create_password_resets_table.php

名前から推測できるとおり、「2014_10_12_000000_create_users_table.php」はユーザ情報を保存する「users」テーブルを作成するPHPスクリプトで、「2014_10_12_100000_create_password_resets_table.php」はパスワードリセット用のトークンを保存する「password_resets」テーブルを作成するPHPスクリプトになります。

勘のよい方はご察知のとおり、「php artisan」コマンドを利用するとこのスクリプトが実行されて、create tableされるわけです。

$ php artisan migrate:fresh

Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table

phpMyAdmin( http://localhost/phpmyadmin )を参照すると「test」データベースに「users」テーブルと「password_resets」テーブルが新規作成されていることがわかります。

スクリーンショット 2018-06-15 12.39.47.png

図1. phpMyAdminのキャプチャ画像


2.5. ユーザ登録の確認

開発用サービスを立ち上げて、ユーザ登録と参照、修正、削除を試します。


2.5.1 開発用サービスの立ち上げ

$ php artisan serve

Laravel development server started: <http://127.0.0.1:8000>


2.5.2 ユーザ登録

ブラウザから http://localhost:8000/ にアクセスして、右上の「REGISTER」ボタンを押下します。

スクリーンショット 2018-06-15 12.48.58.png

登録画面が表示されますので、必要情報を入力して「Register」ボタンを押下します。「Register」画面でユーザ情報を入力し、「Register」ボタンを押下します。

スクリーンショット 2018-06-25 13.38.32.png

すると、ユーザ登録が完了し、登録したユーザとして即ログインがなされます。

スクリーンショット 2018-06-15 12.52.14.png

phpMyAdmin( http://localhost/phpmyadmin )を参照するとユーザが登録されていることが見て取れます。

スクリーンショット 2018-06-25 13.42.18.png

以上、「2. ユーザログイン機能の追加」が完了です。

次は、「3. MVCとルーティングの説明」です。