用户身份验证后我无法重定向 . 我想将管理员重定向到管理面板,将用户重定向到家,所以我制作了管理中间件:

public function handle($request, Closure $next)
{
    if (Auth::user() && Auth::user()->isAdmin()) {
        return $next($request);
    }

    return redirect('/');
}

管理面板的路由是:

Route::prefix('admin')->middleware(['web', 'admin', 'auth'])->group(function () {

    Route::get('/', 'HomeController@index');
    Route::resource('user', 'Admin\UserController');

});

我有一个M-2-M关系的 UserRole 模型 .

用户模型:

public function role(){
    return $this->belongsToMany('App\Role');
}

public function isAdmin()
{
    return ($this->role->first()->name == 'Admin') ?  true : false;
}

Auth LoginController

protected $redirectTo = '/admin';

Auth RedirectIfAuthenticated

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return redirect('/');
    }

    return $next($request);
}

我遇到的问题是我总是在主页上 . 通过检查员观察我发现了一些奇怪的东西,不知道它是否是标准程序:

Image

登录似乎被触发了两次?途径 /admin 被触发并获得200 OK状态,但我从未见过它 . 但是,如果我手动将其输入浏览器,它将引导我进入管理仪表板 .