laravel 中的多用户身份验证无法正常工作

Multiuser Authentication in laravel not work properly

I am Create to user login and admin login. User login for use default laravel Authentication and admin for i'm create guard. its work perfectly. no any proble to run my code just only one proble when i'm login as a user and after login login for admin then there also show user is login.

congig\auth.php

return [

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'admin-api' => [
        'driver' => 'token',
        'provider' => 'admins',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'admins' => [
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],

    // 'users' => [
    //     'driver' => 'database',
    //     'table' => 'users',
    // ],
],

'passwords' => [
    'users' => [
        'provider' => 'users',
        'table' => 'password_resets',
        'expire' => 60,
    ],
    'admins' => [
        'provider' => 'admins',
        'table' => 'password_resets',
        'expire' => 15,
    ],
],

];

App\Exception\Handler.php

protected function unauthenticated($request, AuthenticationException 
$exception)
{
    if ($request->expectsJson()) {
        return response()->json(['error' => 'Unauthenticated.'], 401);
    }

    $guard=array_get($exception->guards(), 0);

    switch ($guard) {
        case 'admin':
            $login='admin.login';
            break;

        default:
            $login='login'; 
            break;
    }
    return redirect()->guest(route($login));
 }

路由器

Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

Route::prefix('admin')->group(function(){

Route::get('/login','Auth\AdminLoginController@showLoginForm')-
name('admin.login');
Route::post('/login','Auth\AdminLoginController@login')-
name('admin.login.submit');
Route::get('/', 'AdminController@index')->name('admin.dashboard');
});

首先,很明显你正在使用多个守卫来验证不同类型的用户,所以当你通过标准 auth guard 验证 Simple 用户时,然后你想访问可用的路由通过 admin guard aka Admin 用户进行身份验证的用户,您需要先对自己进行身份验证,因此 Laravel multiguard authentication 没有任何问题,您只是实施错误,我建议您多读一些关于 guards 和当您 authenticate 一个用户通过某个守卫然后尝试访问需要不同守卫的路线时,这意味着什么。