2017-02-03 120 views
1

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

另外,$request->getUserResolver()說,後衛是空... o.O

我做了什麼錯?

Here it is我的測試回購,如果你想檢查我的代碼。

預先感謝您!

編輯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'); 
    } 
} 
+0

在此處顯示相關代碼是一個不錯的主意。 – Chay22

+1

上次我看到一個人只是把一個鏈接到他們的GitHub回購一個帖子,GitHub已經下降了大約一個小時,問題得到了downvoted。真實的故事。 – apokryfos

+0

@ Chay22你想讓我解釋我的問題中的所有步驟(帶有代碼snipets)嗎?我是如何實現多重認證的? –

回答

1

Auth::shouldUse(your_guard_name);
在您的登錄函數中調用此函數

0

變化在config/auth.php的驅動程序名稱..

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

我爲什麼要那樣做?這是我的自定義驅動程序的自定義條件。 –

相關問題