Laravel 5.7 でログイン機能/ユーザ登録機能を実装する
今回やること
・ユーザ情報を保存する「users」テーブル作成
・Laravelでログイン機能を実装
・seederでusersテーブルにダミーデータ作成
・ログインしてみる
・ユーザ登録してみる
前提
・Laravelが動く環境がすでにあること
・DBの設定が完了していること
・Laravel のバージョンは5.7
現在は下記の画面が表示されている状態です。
完成デモ動画です。
それでは始めます。
--- 🖥 ---
ユーザ情報を保存する「users」テーブル作成
まず最初にユーザ情報を保存する「users」テーブルを作成します。
Laravelではデフォルトで「users」テーブルと「password_restets」テーブルを作成するためのマイグレーションファイルが準備されています。
(src/database/migrations 内にあります)
そのため、下記コマンドを実行するだけでusersテーブルが作成されます。
php artisan migrate
こちらを実行した後にデータベースを確認すると、下記3テーブルが作成されています。
・migrations
・password_resets
・users
usersテーブルには下記8個のフィールドが存在します。
・id
・name
・email_veifield_at
・password
・remember_token
・created_at
・updated_at
これでテーブルの作成は完了です。
Laravelでログイン機能を実装
次に、Laravelでログイン機能を実装します。Laravelではコマンド一つでログイン機能のviewやcontrollerを作成してくれます。以下実行します。
php artisan make:auth
下記メッセージが表示されたら成功です。
Authentication scaffolding generated successfully.
このコマンドを実行することで、下記のファイルが自動で作成されます。
resources/views/home.blade.php
resources/views/layouts/app.blade.php
resources/views/auth/ 内に複数のviewを作成
app/Http/Controllers/HomeController.php
app/Http/Controllers/Auth/ 内に複数のControllerを作成
また、web.php内に認証用のルートが記載されます。
ここで一旦Laravelのページにアクセスしてみると、下記画像のように右上に「LOGIN」と「REGISTER」の文字が表示されています。
「LOGIN」をクリックすると下記のようなログイン画面が表示されます。
「REGISTER」をクリックすると下記のように登録フォーム画面が表示されます。
以上でLaravel側での表示は完成です。
seederでusersテーブルにダミーデータ作成
次にログイン用のダミーデータを準備します。usersテーブルに入れるデータ登録用のseederを準備します。下記コマンドを実行します。
php artisan make:seeder UsersTableSeeder
すると、「/database/seeds」ディレクトリ配下に「UsersTableSeeder.php」というファイルが作成されます。こちらのファイルを下記のように編集してください。
<?php
use Carbon\Carbon;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('users')->insert([
'name' => 'testuser',
'email' => 'testuser@example.com',
'password' => bcrypt('testuser0123'),
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}
}
ファイルの修正ができたら、下記コマンドを実行します。
php artisan db:seed --class=UsersTableSeeder
コマンド実行後にusersテーブルを見てみると、seederファイルで設定したデータが登録されています。
これでダミーデータの登録は完了です。
ログインしてみる
では実際に今作成したユーザでログインしてみましょう。
ログインページ(/login)を開きます。
下記入力し、「Login」をクリックします。
E-Mail Address:testuser@example.com
Password:testuser0123
無事ログインできると、下記のような画面に遷移します。
ログインメッセージと、右上にユーザ名が表示されます。
ログアウトする場合は、右上のユーザ名→ログアウト をクリックでログアウトできます。
以上でログイン完了です。
ユーザ登録してみる
次に画面からユーザ登録してみます。登録ページ(/register)を開きます。
フィールドに情報を記入します。今回は下記のように入力しました。
Name:kevin
E-Mail Address:kevin@example.com
Password:kevin54
Confirm Password:kevin54
入力し「Register」をクリックすると、会員登録が完了し、ログインされます。
データベースのusersテーブルを確認すると、今作成したユーザのデータが登録されています。
以上でユーザ登録完了です。
ということで、非常に簡単ですがLaravelでのログイン機能/ユーザ登録機能の実装の説明を終わります。
今回は説明していないですが、こちらを応用して
・ログインしたユーザにしか表示させないページの設定
・ユーザ登録はメールを送信し、メールに記載しているURLをクリックしないとユーザ登録させない
などができるようになります。
↑はおいおい書いていきたいなと思いますので、またよろしくお願いします😊
GitHubリポジトリ
今回作成したソースはGithubにて公開しています。下記リンクよりご確認ください。(lerning-1ブランチです。)
https://github.com/KoushiKagawa/laravel-learning/tree/learning-1
間違いや、もっとこう書いた方が良いよ!といったご指摘はコメント欄かtwitterのDMいただけると喜びます!
読んでいただきありがとうございます。