ユーザーがログインしていないかどうかを確認


authentication

 悩み事

ユーザーがログインしていない状態かどうかを確認したい

認証されたユーザーはセッションで保持されている事を知っている事が前提になります
現在アクセスしているユーザーがログイン済みかどうかを確認しましょう

 解決方法

Auth::guest()を利用します

Auth::guest()メソッドは、true か falseのみを返却します

if (Auth::guest()) {
    echo "ログインしていません、ログインしてください!";
}

 アドバイス

Auth::guest()Auth::check()は全く逆の利用方法になります

以下は使用例です。

public function guest()
{
    return ! $this->check();
}

現在アクセスしているユーザーが認証済みかどうか確認するを参考にしてください

'auth'フィルターでこのメソッドを利用する場合

Laravelは auth フィルターを app/filters.phpで用意しています

Route::filter('auth', function() {
    if (Auth::guest()) {
        return Redirect::guest('login');
    }
});

これは、ルーターで'auth'フィルタが指定されている場合に、
ログイン認証済みのユーザーアクセスはそのまま通過し、
未ログインユーザーの場合は、ルーターで指定された'login'にリダイレクトされます
'login'を任意のURIなどに変更して利用してください


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa