ログイン時のみ掲示板を表示

続いて、ログインしているユーザーのみが掲示板を表示できるようにしましょう。

コンストラクタの追記

MessagesController.php にコンストラクタを追記します。

MessagesController.php

(省略)
    public function __construct()
    {
        // authというミドルウェアを設定
        $this->middleware('auth');
    }

上記を追記することによって、MessagesControllerの各アクションが実行される前後にauthというミドルウェアの処理が実行されます。

ミドルウェアとは

ミドルウェアとは、アクションの前後に処理を追加するものです。

例えばMessagesControllerのindexメソッドが呼び出されるときに

  1. indexメソッドを呼び出そうとすると、まずauthミドルウェアが呼び出される。
  2. authミドルウェアの認証処理が実行される
  3. authミドルウェアからindexアクションが呼び出される
  4. indexアクションが終了すると、またauthミドルウェアの残りの処理が実行される
  5. authミドルウェアが終了して、全体の処理が終了する。

という流れになります。

ミドルウェアの働きを確認

では、authミドルウェアの働きを確認しましょう。

ログアウトした状態で /messages にアクセスすると、ログイン画面にリダイレクトされます。

これは、indexメソッドが呼び出される前にauthミドルウェアが呼び出され、認証処理(ログインチェック)の際に未ログインのユーザーはリダイレクトされるからです。

これで、ログインしていないユーザーは

  • 掲示板の閲覧
  • 掲示板への書き込み

という二つの機能にアクセスできなくなりました。

results matching ""

    No results matching ""