我在应用admin
和users
中扮演两个角色。这两个角色都使用名为auth
的中间件。现在在应用程序中,当我以管理员身份登录时,我无法路由到用户页面(完美)。
但是当我以用户身份登录时,我可以路由到管理页面,但是我的身份验证必须阻止用户访问管理页面。目前,这就是我的问题...我在做什么不对?
下面是我的代码
AuthMiddleWare
if (Auth::check())
{
if(Auth::user()->roles->pluck('name')->first() == "admin")
{
// return $next($request);
return Redirect::to('/admin/dashboard');
}
else if(Auth::user()->roles->pluck('name')->first() == "user")
{
return Redirect::to('/user/dashboard/');
}
else{
return Redirect::to('login');
}
}
路线
Route::group(array('prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['auth']), function () {
Route::get('dashboard','Controller@show');
}
Route::group(array('prefix' => 'user', 'namespace' => 'User', 'middleware' => ['auth']), function () {
Route::get('dashboard','Controller@show');
}
答案 0 :(得分:0)
尝试以下代码:
if (Auth::check())
{
if(in_aaray('admin', Auth::user()->roles->pluck('name')->all()))
{
// return $next($request);
return redirect('/admin/dashboard');
}
else if(in_array('user', Auth::user()->roles->pluck('name')->all()))
{
return redirect('/user/dashboard/');
}
else{
return redirect('login');
}
}else{
return redirect('login');
}
答案 1 :(得分:-1)
您需要在laravel中进行自定义身份验证,并为管理员和用户创建不同的表