Laravel 6 / 7〜 でログイン機能を構築

2020年1月24日

PHP

Laravel 6 /7 〜でログイン機能を実装します。

 

なおすでにデータベースと接続していることを前提に説明します。

 

関連ページ

MySQLと接続し一覧表示

 

 

laravel/uiパッケージをインストールします。

 

下記コマンドで、認証機能の構築に必要なビューなどのファイルが生成されます。なおvue(Vue.js)を指定していますが、Reactを利用する場合は「react」と指定します。他にも「bootstrap」が指定できます。

下記のようなメッセージが表示されます。

 

マイグレーションを実行します。

 

以降の説明では、Node.jsがインストールされていることが前提です。

 

下記コマンドでフロント側に関連したパッケージがインストールします。node_modulesディレクトリが生成されpackage.jsonの内容に依存した様々なパッケージがインストールされます。

 

package.jsonとnpm installについては下記ページをご覧下さい。

 

Node.js – ExpressでHello world

 

 

ビルドを実行します。

 

以上でログイン機能が実装されたことを確認できます。

 

 

LOGIN/REGISTERが表示される

 

 

 

上記画面から実際にユーザーを登録し、ログインできる状態(/homeが見られる状態)にしておきます。

 

 

画面の追加


 

次に新しく画面(/book)を追加し、/homeと同じくログインしている状態でのみ表示できるようにします。

 

BookControllerを作成し、生成されたファイルを下記のように編集します(ハイライト部分)。

 

app/Http/Controllers/BookController.php

11〜14行目

コンストラクタでミドルウェアのauthを呼び出し、認証済みのユーザーのみアクセスの許可を与えています。この設定はweb.php側でもおこなえます(後述)。

 

18行目

Authファサードで認証されたユーザーの情報を取得しています。

 

 

web.phpに下記コードを追記します。

routes/web.php

上述したようにBookController.phpにおいてコンストラクタにミドルウェアのauthを設定しましたが、ルート情報側に、下記のように設定することもできます。

 

 

テンプレートを用意します。bookディレクトリを作成し、index.blade.phpを作成・配置します。

resources/views/book/index.blade.php

 

以上で、もしログインした状態で/bookにアクセスした場合、ユーザーのNameとE-Mail Addressが表示されるのが確認できます。もしログアウト状態でアクセスした場合は、/login画面へとリダイレクトされます。

 

 

参照ページ


 

Laravel 6.x 認証

 

 

 

LINEで送る
Pocket

定番本
定期本
 
Copyright © 2020 思考の葉 All Rights Reserved.  プライバシーポリシー