用户身份验证后我无法重定向 . 我想将管理员重定向到管理面板,将用户重定向到家,所以我制作了管理中间件:
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关系的 User
和 Role
模型 .
用户模型:
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);
}
我遇到的问题是我总是在主页上 . 通过检查员观察我发现了一些奇怪的东西,不知道它是否是标准程序:
登录似乎被触发了两次?途径 /admin
被触发并获得200 OK状态,但我从未见过它 . 但是,如果我手动将其输入浏览器,它将引导我进入管理仪表板 .