2017-10-18 3 views
0

私は、Authミドルウェアが含まれている場合にのみAuthファサードが機能することを発見しました。残念なことに、認証ミドルウェアを含め、ユーザーがログインしていなければリダイレクトするように強制します。つまり、ルートはログインしているユーザーのみ、またはログインしていないユーザーのみが動作します。Laravel:リダイレクトを行わずにユーザーがログインしているかどうかを調べる方法

私は関係なく、ユーザーがログインまたはいないが、彼らがしている場合、ユーザーオブジェクトからいくつかの追加のデータを表示するされているかどうかの訪問することができ、単一のページを持っていると思います。これはどうすればいいですか?

最も簡単な方法は、両方とも同じ制御方法によってバックアップされた2つのルートを作成するであろうように見えます。これを行うにはこれが最善の方法ですか?

編集: さらに詳しい調査では、デフォルトのガードがユーザーがログインしていないことがわかりました。ログインしたユーザーの認証Auth :: guard() Auth :: user()の代わりにuser()を使用します。デフォルトのガードをグローバルに変更することはできません。つまり、ルートごとにデフォルトガードを設定する方法はありますか?あるいは、私はどこでもauth :: guard()を使う必要がありますか?

答えて

5

ユーザーはあなたが認証::チェックを使用することができます

+0

認証::チェック()ユーザーがログインしている場合でも、falseを返します – Benubird

+1

の場合、デフォルトのlaravelユーザークラスを使用してログインしていません – madalinivascu

+1

カスタムログインの実装はありますか? – madalinivascu

0

にログインしている場合は、あなたのビューで使用Auth::check()は(チェックする)

if($user = Auth::check()) 
{ 
    echo 'logged in'; 
}else{ 
echo 'not logged in'; 
} 
+0

認証::チェックは、ユーザーがログインしている場合でもfalseを返す値 – Benubird

関連する問題