Выход из обычного аккаунта при входе в админ панель и наоборот

Хочу добавить на сайт админ панель, при этом чтоб было невозможно одновременное нахождение и в обычном аккаунте и в админ панели. Т.е при входе в админ панель, должен происходить выход из обычного аккаунта, и наоборот. Пробую решить эту задачу используя мидлвеер authenticate, но результат не тот, который нужен. Пользователя выбрасывает из обычного аккаунта только при попытке обращения в неавторизованной админ панели к ее маршрутам, требующим авторизации, и также с обычным аккаунтом. Что я делаю не так?

Код мидлвеера:

protected function redirectTo($request)
    {
        if ($request->routeIs('admin.*')) {
            if (Auth::guard('web')->check()) {
                Auth::guard('web')->logout();
            }
            if (!Auth::guard('admin')->check()) {
                return route('admin.login');
            }
        }
        if (Auth::guard('admin')->check()) {
            Auth::guard('admin')->logout();
        }
        if (!Auth::guard('web')->check()) {
            return route('login');
        }
    }

Код файла с маршрутами админ панели:

Route::name('admin.')->group(function () {
    Route::get('login', [AuthorizationController::class, 'create']);
    Route::post('login', [AuthorizationController::class, 'store'])->name('login');

    Route::middleware('auth:admin')->group(function () {
        Route::get('test', [TestController::class, 'test'])->name('tests');
    });
});

Маршрутизация в обычном аккаунте аналогична админ панели


Ответы (0 шт):