問題
ユーザーがログインしているかどうかを確認したい。
Laravelは認証されたユーザーをセッションに自動的に保持します。現在のリクエストにユーザーがログインして認証されているかどうかを確認する必要があります。
解決
Auth::check()
を使用します。
Auth::check()
メソッドはtrueまたはfalseを返します。
もしも ((認証:::チェック(()。)。
{{
捨てた 'わーい!ログインしています。」;
}
議論
これを行うと、舞台裏でいくつかのことが起こります。
最初のLaravelは、現在のセッションにユーザーのIDがあるかどうかを確認します。その場合、データベースからユーザーを取得しようとします。
それが失敗した場合、Laravelはremember mecookieをチェックします。それが存在する場合は、もう一度データベースからユーザーを取得しようとします。
有効なユーザーがデータベースから取得された場合にのみ、trueが返されます。
「ゲスト」フィルターはこの方法を使用します
Laravelは app/filters.php
でゲストフィルターのデフォルトの実装を提供します。
{{
もしも ((認証:::チェック(()。)。 戻るリダイレクト:::に(('/')。;
})。;
このデフォルトの実装は、ゲスト(ログインしていないユーザー)のみがアクセスできるルートにフィルターを追加する場合に使用されます。ユーザーがログインしている場合、ユーザーはホームページにリダイレクトされます。