[英]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.php
, Auth::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.