处理管理员和用户身份验证 - Laravel

时间:2018-03-22 08:41:24

标签: php laravel authentication

我的系统有两个用户(管理员和操作员),我想根据他们的角色对他们的各个页面进行身份验证。我正在使用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');
});

1 个答案:

答案 0 :(得分:0)

你是不是搞乱了你的if条件?在App \ Http \ Middleware中的 RedirectIfAuthenticated.php 文件中尝试以下代码。希望能解决你的问题。

{{1}}

您使用Entrust处理角色吗?