Laravel 5.4以管理员身份登录时,多重身份验证管理员和用户重定向到用户登录

Laravel 5.4以管理员身份登录时,多重身份验证管理员和用户重定向到用户登录,laravel,authentication,admin,Laravel,Authentication,Admin,当我登录到管理员表单时,当用户名和密码正确时,它将引导我进入我的用户登录表单,而不是我想要的位置,即admin/home ADMIN/AUTH/LOGINCONTROLLER /** * Where to redirect users after login. * * @var string */ protected $redirectTo = '/admin/home'; /** * Create a new controller instance. * * @return v

当我登录到管理员表单时,当用户名和密码正确时,它将引导我进入我的用户登录表单,而不是我想要的位置,即admin/home

ADMIN/AUTH/LOGINCONTROLLER

/**
 * Where to redirect users after login.
 *
 * @var string
 */
protected $redirectTo = '/admin/home';

/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('guest.admin', ['except' => 'logout']);
}

public function showLoginForm()
{
    return view('admin.auth.login');
}

/**
 * Get the guard to be used during authentication.
 *
 * @return \Illuminate\Contracts\Auth\StatefulGuard
 */
protected function guard()
{
    return Auth::guard('admins');
}

我将创建一个中间件,用于检查用户是否为Admin,并将无管理员重定向到home,然后将该中间件添加到kernel.php中的Admin routes

然后,您的标准登录控制器将适用于这两种情况

您的中间件看起来像这样

在此处使用php artisan make:中间件名称

public function handle($request, Closure $next){
 $user = $request->user();
 if (!$user || !$user->isAdmin()) {
     throw new AuthenticationException;
 }
 return $next($request);
}
然后使用标准登录控制器重定向到主页。如果请求admin/home,您将被重定向到登录,当用户登录并且是admin时,他将被重定向到admin/home

在您的管理控制器中,您只需使用

public function __construct()
{
     return $this->middleware('auth') ;
} 
为您的中间件添加到kernel.php

admin' => [

'web',

\App\Http\Middleware\your middleware ::class,

],

iAdmin是我的用户模型中的一个函数,用于确定用户是否为管理员

您能给我一个示例或提示吗,因为我不能用iTunes更新的描述来完成它