Laravel6でログイン機能を実装の方法。初心者でも確実にできるように丁寧に解説!

更新日:

Laravel6でログイン機能を実装の方法。

Laravelサイトにログイン機能を付けたいんだけど、なにかをダウンロードする事で簡単にできるんじゃないの?やり方が分かんないよ。

 

Laravelには簡単にログイン機能を実装できるAuthという仕組みがあります。

というわけで、Laravel6を例に、Laravelサイトにログイン機能を実装する方法を、
初心者でも確実にうまくできるように丁寧に解説していきます。

 

Laravel6でログイン機能を実装する方法。手順

次の手順で実装します。

  1. node.jsのインストール
  2. laravel/uiパッケージのインストール
  3. Authをインストールするコマンドを実行
  4. usersテーブルをマイグレーションする
  5. npmをインストールするコマンドを実行

では、1から順に解説していきます。

0. node.jsをインストールする

まず、ログイン機能を使うには、Javascriptをサーバー側で動かすためのNode.jsというシステムをPCもしくはサーバーにインストールする必要があります。

 

例えば、あなたがPC上(XAMPP上)でLaravelサイトを作成しているなら、PCにまずnode.jsをインストールします。

インストール手順は、この記事で画像付きで解説しているので、この手順でまずはnode.jsをインストールしてください↓

Laravel6入門:Node.jsのインストールのやり方。エラー回避方法も!

 

1. laravel/uiパッケージをLaravelにインストールする

コマンドプロンプト(ターミナル)を開きます。

Laravelプロジェクトフォルダ(サイトのフォルダ)へ、cdコマンドで移動します。

例えば、私の場合、samplesiteというフォルダなので、

cd D:\XAMPP\htdocs\samplesite

と入力し、Enterします。

次に、

composer require laravel/ui "^1.0" --dev

と入力し、Enterして、処理が終わるまで待ちます(5分くらい)

Package manifest generated successfully.と出てればOKです。

 

2. Authをインストールするコマンドを実行

次にログイン機能本体をインストールします。

実はLaravel6では、ログイン機能は3種類あります。

bootstrap版、vue.js版、 react版

という3種類があるんですが、どれを入れても完成するログイン画面と機能は同じです。

というわけで、ここではvue版を入れる事にします。

 

php artisan ui vue --auth

と入力し、Enterします。

 

ちなみに、bootstrap版だと
php artisan ui bootstrap --auth

React版だと
php artisan ui react --auth

になってます。どれを使っても続きのやり方は一緒です。

 

3. usersテーブルをマイグレーションする

データベースにログイン情報である、ユーザー名、パスワードなどを保存するusersテーブルを作成します。

これも元々Laravelをインストールした時にマイグレーションファイルが出来てます。
database\migrationsというフォルダを開いてください。

その中に、

2014_10_12_000000_create_users_table.php, 2014_10_12_100000_create_password_resets_table.php, 2019_08_19_000000_create_failed_jobs_table.php

という3つのファイルがあるはずです(日付は違くても問題ないです)

これらがログイン時のデータベースのテーブルを作成するファイルなので、無いとか削除しちゃった場合は、もう一個Laravelプロジェクトをどっかにインストールして、そこからコピーしてきてください。

で、確認できたら、

php artisan migrate と入力し、Enterするだけです。

 

ちょっと待って。なんかエラーっぽいのが出たよ。見て見て!

ああ、それは多分まだデータベースを作ってないか、データベースへのアクセス権がLaravelに無い状態。

新しいデータベース作成と、.envファイルの設定のやり方を下の記事で解説してるから、それをやってから、php artisan migrateをもう一度してみて↓

Migration準備1:phpMyAdminからデータベースを作成する

 

そもそもデータベースって何?食えんの?状態なら↓

Laravel(PHP)におけるデータベース(SQL)とは?初心者でもよく分かる図と例でやさしく解説。

Neby

 

マイグレーションが完了すると、usersテーブルが出来てるはずです。

実はこの時点で、Laravelサイト上では、もうログイン機能が使えるようになってます。

ブラウザからアクセス(http://localhost:8000/)し、LOGIN REGISTER というボタンをそれぞれ押してみると、機能するのが分かるはずです。

PC上のLaravelサイトをブラウザに表示する方法。初心者でも必ずできる。

ただ、使ってみれば分かるのですが、CSSも反映されてないですし、実際ログインしても、

この画像のように、中はまっさら空っぽです。まぁ、ここから後は自分で1からHTMLとCSSでレイアウトを作っていくっていう場合は、これで完成なんですが、Laravelに元々入ってるapp.js, app.cssを使う事で、もっとちゃんとした管理画面を簡単に作れます。

 

4. npmをインストールするコマンドを実行

では、元々Laravelに入ってるapp.js, app.cssを使うためのnpmインストールというのをここからはやっていきます。これを使うために、手順0でnode.jsをインストールしました。

 

再び、コマンドプロンプト(Shell/ターミナル)を使います。

現在のディレクトリ(フォルダ)がLaravelプロジェクトにある事を確認してください。(例:D:\XAMPP\htdocs\samplesite)

違う位置にいる場合は、最初に使ったcdコマンドでLaravelプロジェクトフォルダまで移動します。

次に、

npm install

と入力し、Enterします。すると処理が始まるのでじっくり5分くらい待ちます。

途中WARNとか出ますが、そのまま続けてると完了します。

これで、npmのインストールができました。

 

次に

npm run dev

と入力し、Enterします。

最後に、緑文字でapp.css, app.jsって出てますよね。そうこれらでログイン画面の表示を操作するようになったという事です。

実際のサイトをまた見てみましょう。

画像のように、まともな見栄えになったと共に、プルダウンメニューなども実装されました。

 

Laravelのログイン機能はどのファイルで実装してる?

一応、どのファイルが関係してるのかを説明すると、

まず、この↓ログイン画面(レジスター画面)自体は、

 

resources\views\auth フォルダのlogin.blade.php, register.blade.phpに書かれています。

これをイジる事でレイアウトなどを変更できます。

 

次にログイン後のダッシュボード画面は、

全体のレイアウト、ヘッダー部分などは、layoutsフォルダのapp.blade.phpに書かれています。そして、ログイン後のページ自体は、home.blade.phpに書かれてます。

home.blade.phpがapp.blade.phpの全体レイアウトを継承してる状態です。

 

継承って何?なんで2つのブレードで画面を作ってるの?って場合はこれを読むとよく分かるよ↓

Laravelのbladeの@sectionと@yieldの使い方、どっちがどっちか図で完璧に分かる!

Neby

 

次に、publicフォルダに行くと、css, js フォルダがあります。

この中に入ってる、app.css, がこのログイン画面及び、ログイン後の画面のCSSです。
またプルダウンメニューなどを制御してるのが、app.jsです。

それぞれのファイルを自分のサイトに合わせてカスタマイズする事で、

こんな感じの管理画面が作れますよって事です。

 

ちなみに、ログイン後の画面で超まれに別のJavascriptパッケージが動かなくなったみたいな現象が起こる事もあるんだ。それの対処法については↓

Laravelのbladeに書いたJavascriptが動かない?app.jsのせいです。

Neby

 

写真で血圧記録

  • この記事を書いた人

Neby

本を毎日多読しつつ、資産運用、プログラミング、心理学、ネットビジネススキルを猛向上中。貧富の差が広がる5年後、10年後に安心生活を送るためのお金のリテラシー、スキル、資産を一緒に作っていきましょう。

-PHP Laravel入門
-