簡體   English   中英

Laravel 5.4多重身份驗證-Auth :: guard()-> user()為空

[英]Laravel 5.4 Multi auth - Auth::guard()->user() empty

我在Laravel 5.4中創建了一個多身份驗證測試。 它正在使用自定義中間件,自定義Eloquent提供程序等。身份驗證流正在運行,我可以兩種方式登錄。 但是,如果用戶已登錄,則在家庭控制器中,當我想使用Auth::user()Auth::guard()->user()檢查該用戶時,它為空。 Auth::guard()也為空。 但是我不明白,為什么?! 它應該包含已登錄的用戶實例,不是嗎?

另外$request->getUserResolver()表示防護為空... oO

我做錯了什么?

如果您想檢查我的代碼, 這是我的測試倉庫。

先感謝您!

編輯1:

\\app\\Http\\Controllers\\Employee\\HomeController.phpAuth::guard()->user()Auth::user()為空。

namespace App\Http\Controllers\Employee;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{

    public function __construct(Request $request)
    {
        $this->middleware('auth.employee:employee');
    }

    public function index(Request $request)
    {
        $users[] = Auth::user();
        $users[] = Auth::guard()->user();
        $users[] = Auth::guard('employee')->user();

        dd($users);

        return view('employees.home.index');
    }
}

Auth::shouldUse(your_guard_name) ;
在您的登錄功能中調用它

config/auth.php驅動程序名稱更改為。

'employees' => [
        'driver' => 'eloquent',
        'model' => App\Models\UserEmployee::class,
    ],
    'customers' => [
        'driver' => 'eloquent',
        'model' => App\Models\Customer::class,
    ],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM