ログイン時のみ掲示板を表示
続いて、ログインしているユーザーのみが掲示板を表示できるようにしましょう。
コンストラクタの追記
MessagesController.php にコンストラクタを追記します。
MessagesController.php
(省略)
public function __construct()
{
// authというミドルウェアを設定
$this->middleware('auth');
}
上記を追記することによって、MessagesControllerの各アクションが実行される前後にauthというミドルウェアの処理が実行されます。
ミドルウェアとは
ミドルウェアとは、アクションの前後に処理を追加するものです。
例えばMessagesControllerのindexメソッドが呼び出されるときに
- indexメソッドを呼び出そうとすると、まずauthミドルウェアが呼び出される。
- authミドルウェアの認証処理が実行される
- authミドルウェアからindexアクションが呼び出される
- indexアクションが終了すると、またauthミドルウェアの残りの処理が実行される
- authミドルウェアが終了して、全体の処理が終了する。
という流れになります。
ミドルウェアの働きを確認
では、authミドルウェアの働きを確認しましょう。
ログアウトした状態で /messages にアクセスすると、ログイン画面にリダイレクトされます。
これは、indexメソッドが呼び出される前にauthミドルウェアが呼び出され、認証処理(ログインチェック)の際に未ログインのユーザーはリダイレクトされるからです。
これで、ログインしていないユーザーは
- 掲示板の閲覧
- 掲示板への書き込み
という二つの機能にアクセスできなくなりました。