Выход из обычного аккаунта при входе в админ панель и наоборот
Хочу добавить на сайт админ панель, при этом чтоб было невозможно одновременное нахождение и в обычном аккаунте и в админ панели. Т.е при входе в админ панель, должен происходить выход из обычного аккаунта, и наоборот. Пробую решить эту задачу используя мидлвеер 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');
});
});
Маршрутизация в обычном аккаунте аналогична админ панели