Laravel,balde「@auth・Auth::user()」が反応しない件

今回、非常にピンポイントなシチュエーションによる問題です。

■前提条件

・マルチログイン認証機能で、guard: users,adminを2つ作成
・guardのdefaultをusers指定

■問題発生状況

・adminでログイン状態
・baldeにて、「@auth」や「Auth::user()」がnullで返ってくる

■原因

原因は、guardのdefault指定のようです。

config > auth.php

の中で、defaultを指定を下記でしておりました。

    'defaults' => [
        'guard' => 'users',
        'passwords' => 'users',
    ],

「@auth」や「Auth::user()」「Auth::login()」 等で呼び出すのは auth.php でdefault に指定したguardのようです。

adminでログイン状態でも、defaultがusersだったのでnullが返ってきたようです。

■解決策

defalut以外のguard を呼び出すには Auth::guard(‘admin’) のように guard 名を指定する必要があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です