@Dcfgvy

Как отслеживать закрытие вкладки в Node.js?

Здравствуйте! Хочу изменять значение одной переменной (чтобы при уходе с сайта пользователь выходил из аккаунта).
Вот код js:
const express = require('express');
const app = express();                   
const path = require('path');
const fs = require('fs');
let mysql = require('mysql2/promise');
const config = require('./config');

let is_signed_in = false;
if (!sessionStorage.getItem('status')) {
    is_signed_in = false;
    console.log('user went away');
}
//далее в коде при входе в аккаунт is_signed_in становится true

Идея такая, чтобы у каждого пользователя is_signed_in был с разным значением, но изначально false. Может это надо делать через бд для каждого пользователя отдельно??

Спасибо
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
vool
@vool
Разработчик
Сразу вам скажу: на сервере ноды вы не сможете контролировать гугл-хранилища по типу sessionStorage, localStorage, а вот на клиенте на ванильном js можна отслеживать вкладку:
let tab = window.open("url");
let interval = setInterval(() => {
  if (tab.closed) {
      //Реализовуете выход когда вкладка закрыта
      clearInterval(interval);
  }
}, 200);


Правда, вам придётся каким то образом заставить пользователя оставить открытую вкладку которая проверяет другую
Это вообще костыльный способ, проблемма в том что программист не может отследить закрытие текущей вкладки((

Вот нашёл какое то решение(не проверял, но кажется что не будет всегда срабатывать):
https://qna.habr.com/q/339145
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы