我的系统有两个用户(管理员和操作员),我想根据他们的角色对他们的各个页面进行身份验证。我正在使用Authenticated.php
中间件来完成这项工作,如下所示
但尝试以任何用户身份登录时出现错误
Call to undefined method Illuminate\Contracts\Auth\Factory::check()
请问我做错了什么?
Authenticated.php
public function handle($request, Closure $next, ...$guards)
{
if(Auth::check()) {
if(Auth::user()->hasRole('administrator')) {
return redirect('/');
} else if (Auth::user()->hasRole('operator')) {
return redirect('client/dashboard');
}
}
// $this->authenticate($guards);
return $next($request);
}
Route.php
Route::group(['middleware' => ['auth']], function () {
Route::get('/', 'PagesController@dashboard');
});
Route::group(array('prefix' => 'client', 'namespace' => 'User', 'middleware' => ['auth']), function () {
Route::get('/dashboard', 'DashboardController@create');
});
答案 0 :(得分:0)
你是不是搞乱了你的if条件?在App \ Http \ Middleware中的 RedirectIfAuthenticated.php 文件中尝试以下代码。希望能解决你的问题。
{{1}}
您使用Entrust处理角色吗?