TGViewer
Glo Academy Glo Academy @glo_academy · 3.76K subscribers
Post #2733 216
⚡ Одна строка разлогинит все вкладки сайта

Нажал «Выйти», а в соседней вкладке всё ещё открыт кабинет: кнопки живые, данные на месте. Обычно это чинят через localStorage: пишут туда значение, в других вкладках ловят событие storage, парсят строку и удаляют ключ.

const channel = new BroadcastChannel('auth');

// во вкладке, где нажали «Выйти»
channel.postMessage({ type: 'logout' });

// в остальных вкладках сайта
channel.onmessage = (e) => {
if (e.data.type === 'logout') redirect('/login');
};


new BroadcastChannel('auth') открывает канал с именем auth. Вкладка, где нажали «Выйти», отправляет в него объект через postMessage. Остальные вкладки открыли канал с тем же именем и ловят этот объект в onmessage.

Объект уходит как есть, без JSON.stringify, и в хранилище после него ничего не остаётся.

Отправитель своё сообщение не получает, поэтому вкладку с кнопкой уводи на вход отдельно. Работает во всех браузерах, в Safari с версии 15.4.

🔥 — если было полезно

@glo_academy | #js_day
  • 🔥 6
More from @glo_academy
  1. Sep 26, 2026📐 Лендинг жилого комплекса Макет средней сложности без адаптива на русском языке @glo_aca…
  2. Sep 24, 2026🧰 pico Нужна страница входа или админка для пет-проекта, а возиться со стилями полей и кн…
  3. Sep 23, 2026😎 @glo_academy
  4. Sep 22, 2026✂️ Состояние элемента в атрибуте вместо трёх классов classList.add('loading'), потом add('…
  5. Sep 21, 2026🎨 Две карточки в гриде не растягиваются на пол-экрана Сетка на repeat(auto-fit, minmax(24…
  6. Sep 19, 2026📐 Лендинг ювелирного магазина Макет лендинга средней сложности без адаптива на русском яз…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →