2017-06-20 184 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

更新后的描述 –

相关问题