2017-02-03 4 views
1

Laravel 5.4에서 다중 인증 테스트를 만들었습니다. 그것은 사용자 정의 middlewares, 사용자 지정 엘로 젠트 제공자 등을 사용하고 있습니다. 인증 절차가 작동 중이며 두 가지 방법으로 로그인 할 수 있습니다. 그러나 사용자가 로그인 한 경우 홈 컨트롤러에서 Auth::user() 또는 Auth::guard()->user()으로 사용자를 확인하려고 할 때 비어 있습니다. Auth::guard()도 비어 있습니다. 하지만 이해가 안돼, 왜?! 서명 된 사용자 인스턴스가 포함되어야합니다. 그렇지 않아야합니까?Laravel 5.4 다중 인증 - Auth :: guard() -> user() empty

또한 $request->getUserResolver() 내가 잘못 했습니까 무엇

o.O

... 가드가 null 있다고?

Here it is 내 코드를 확인하려면 테스트 레포.

미리 감사드립니다.

편집 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'); 
    } 
} 
+0

여기에 관련 코드를 표시하는 것은 좋은 생각입니다. – Chay22

+1

지난 번에 GitHub 레포에 대한 링크를 넣은 사람이있는 게시물을 보았을 때 GitHub은 약 한 시간 동안 다운되어 질문이 내려졌습니다. 진실한 이야기. – apokryfos

+0

@ Chay22 내 질문에 모든 단계 (코드 스 니펫 포함)를 설명하고 싶습니다. 어떻게 다중 인증을 구현 했습니까? –

답변

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

왜해야합니까? 그것은 인증에 대한 사용자 지정 조건을 가진 내 사용자 지정 드라이버입니다. –

관련 문제