【PHPでwebアプリを作る:Laravel6】ログイン機能の実装編

login Webエンジニア

前回の記事でユーザー登録処理を作成しました。

write

【PHPでwebアプリ:Laravel6】バリデーション応用とデータベース登録

2019年11月6日

今回は作成したユーザーでのログイン処理について書いていきます。

ログイン処理

まずLaravel6公式の認証に関するドキュメントはこちら。
https://readouble.com/laravel/6.x/ja/authentication.html

ここでいきなりなんですが、前回作成したユーザー登録の処理は不要になります。

上記の通りに進めるとユーザー登録ページとログインページは自動で出来上がるので、それをカスタマイズしていく方が楽です。

ただいきなりこっちをやっちゃうと投稿の登録処理なんかの流れもわからなくなると思うので、ひとまず基本はやってみて次にこっちを使ってみる方が理解はしやすいのかなと思います。

データベースの準備

既に独自のusersテーブルを作成したのですが、これだとLaravel標準の認証処理を使うのに適していない部分があります。

Laravelには既にusersテーブルのmigrationが用意されているのでそちらで作り直します。

まず既に作ったusersテーブルを名前を変えてしまうか削除してしまいましょう。今回の例としては一応別名に変更してとっておきます。

mysql -uroot whateat
RENAME TABLE users TO users_old;
exit

次にLaravelをインストールしたディレクトリに移動してマイグレーションを実行します。

cd /var/www/html/whateat
php artisan migrate

これでusersテーブルをはじめとしたいくつかのテーブルが作成されます。

認証関連の準備

同様のフォルダで以下のコマンドを実行します。一つ目のコマンドは完了まで少し時間がかかります。

composer require laravel/ui --dev
php artisan ui vue --auth

終わったら「localhost:50080/home」にアクセスしてみます。「register」リンクがユーザー登録、「login」リンクでログイン画面に飛べます。

試しにregisterでユーザー登録を行って、loginでログインできるかを試してみると良いです。

登録ページのカスタマイズ

デフォルトのままだと見た目がひどいことになっているのでデザインをカスタマイズしていきましょう。

登録ページのビューは「resources/views/layouts/register.blade.php」です。

先頭の「@extends(‘layouts.app’)」を「@extends(‘layout’)」に切り替えればこれまでに作成したヘッダーとフッターを利用したテンプレートに切り替えられます。

あとは英語になっている部分を日本語にしたりCSSでデザインを整えたりすればOKです。

ログインページのカスタマイズ

同様にログインページは同じ場所にあるlogin.blade.phpを修正していけばOKです。

例えばMypageControllerを作成しておき、ログイン後はこのページにリダイレクトさせたいという場合は「Controllers/Auth」にある以下の4ファイル内の「protected $redirectTo = ‘/home’;」の部分を/mypageに変更します。

・LoginController
・RegisterController
・ResetPasswordController
・VerificationController

ログイン済みかの判断

コントローラー内でログイン済みかどうかを判断するには以下のような感じになります。

        if (Auth::check()) {
            echo '認証済';
        } else {
            echo '認証前';
        }

まとめ

以上でログイン認証回りは完了です。次はログイン後に表示されるマイページと投稿処理でも作っていこうかなと思います。

引き続き、よろしくお願い致します。