2017-06-20 187 views
0

當我登錄到管理員表單時,用戶名和密碼是正確的,它會直接我到我的用戶登錄表單不在我的願望位置這是管理員/家庭Laravel 5.4多重身份驗證管理員和用戶重定向到用戶登錄時登錄爲管理

ADMIN/AUTH/LoginController中

/** 
* Where to redirect users after login. 
* 
* @var string 
*/ 
protected $redirectTo = '/admin/home'; 

/** 
* Create a new controller instance. 
* 
* @return void 
*/ 
public function __construct() 
{ 
    $this->middleware('guest.admin', ['except' => 'logout']); 
} 

public function showLoginForm() 
{ 
    return view('admin.auth.login'); 
} 

/** 
* Get the guard to be used during authentication. 
* 
* @return \Illuminate\Contracts\Auth\StatefulGuard 
*/ 
protected function guard() 
{ 
    return Auth::guard('admins'); 
} 

回答

0

如果用戶是管理員和重定向沒有管理員在家裏那麼中間件添加到管理員航線kernel.php我會創建一個檢查中間件

然後,您的標準登錄控制器將適用於這兩種情況

您的中間件看起來像這樣。

使用PHP工匠製作:中間件名稱 - 這裏

public function handle($request, Closure $next){ 
$user = $request->user(); 
if (!$user || !$user->isAdmin()) { 
    throw new AuthenticationException; 
} 
return $next($request); 
} 

然後用你的標準登錄控制器,它重定向到家庭。如果管理員/家庭被要求,你將被重定向到登錄和當用戶登錄和是管理員,他將被重定向到管理/家庭。

在您的管理控制器,你可以只使用

public function __construct() 
{ 
    return $this->middleware('auth') ; 
} 

添加到kernel.php爲您的中間件

admin' => [ 

'web', 

\App\Http\Middleware\your middleware ::class, 

], 

注 的isAdmin是我的用戶模型的功能,其確定用戶是是否管理員

+0

你可以給我一個樣本或提示,因爲我不能這樣做我的工作與它 –

+0

更新後的描述 –