質問: http://xxx.xx/home 上記ページにアクセスすると、 ・ログインしていない場合はログイン画面が表示される ・ログインしている場合は/home画面が表示される のですが、 このログインしてない場合プログラムはどのような動きでログイン画面が表示されているのかがわかりません。 アドレスを見ると http://xxx.xx/home のままなので、リダイレクトしているわけではなく、Login用のviewを表示させているのかなと考えたのですが、 HomeControllerを見てもそのような記述がなくわからない状態です。 環境 Homestead Laravel5.4 上記環境で php artisan make:Auth を実行し、認証機能を実装しました。 よろしくお願いいたします。
回答: Laravel5.5ですがログインしていない場合は、authミドルウェア設定があるルートにアクセスした場合に、AuthenticationException例外が発生するので、フレームワークの例外の受け皿である\Illuminate\Foundation\Exceptions\Handlerクラスの、renderメソッドでunauthenticatedメソッドが呼び出され、リクエストがjsonを要求していない場合は、loginルート名のルートでリダイレクトする挙動になっています。 authミドルウェアの処理は、\Illuminate\Auth\Middleware\Authenticateクラスに定義があります。 Laravelの重要な概念であるミドルウェア辺りの理解を深めてみてください。 Laravel 5.5 ミドルウェア またLaravel5.4は後数ヶ月でサポートが切れるので特別な事情がなければ、Laravel5.5LTSの利用をおすすめします。