Laravel 5.4以管理员身份登录时,多重身份验证管理员和用户重定向到用户登录
当我登录到管理员表单时,当用户名和密码正确时,它将引导我进入我的用户登录表单,而不是我想要的位置,即admin/home ADMIN/AUTH/LOGINCONTROLLERLaravel 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
/**
* 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更新的描述来完成它