Laravel auth重定向

时间:2017-06-20 21:10:36

标签: php laravel redirect routes

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

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;
}

验证LoginController

protected $redirectTo = '/admin';

验证RedirectIfAuthenticated

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

    return $next($request);
}

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

Image

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

0 个答案:

没有答案