Firebase безопасный способ обнаружения присутствия пользователя - PullRequest
1 голос
/ 24 апреля 2020

У меня есть приложение, которое имеет дело с WebRT C. Я планирую использовать Firebase RTDB для сигнализации и администрирования пользовательских подключений к комнатам.

Я искал, как управлять присутствием пользователя, чтобы автоматически отключать пользователя от комнаты, когда он закрывает браузер. Из документации кажется, что единственный способ сделать это - через клиентскую сторону:

firebase.database().ref('.info/connected').on('value', function(snapshot) {
    if (snapshot.val() == false) {
        return;
    };
    userStatusDatabaseRef.onDisconnect().set(isOfflineForDatabase).then(function() {
        userStatusDatabaseRef.set(isOnlineForDatabase);
    });
});

Хотя это работает в обычных случаях, что, если есть злонамеренный пользователь, который переписывает код, чтобы сделать это вместо этого :

userStatusDatabaseRef.set(isOnlineForDatabase);

Из того, что я вижу здесь, это может сделать пользователя постоянно подключенным к сети, независимо от того, отключен он или нет.

И с другой точки зрения, похоже, что такой способ действий нарушает принцип "никогда не доверяй клиенту".

Есть ли что-то, что я здесь упускаю? Или может быть обходной путь? Может быть, функция, которая срабатывает, когда пользователь слушает «.info / connected»?

Хотелось бы услышать ваш вклад по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...