Проверка подлинности Firebase отключает ранее прошедших проверку подлинности пользователей, вызывая для них ошибки отказа в разрешении

#javascript #node.js #firebase #firebase-realtime-database #firebase-authentication

#javascript #node.js #firebase #firebase-realtime-database #firebase-аутентификация

Вопрос:

1) Пользователь X посещает мою веб-страницу, и X правильно аутентифицирован и может выполнять запись в мою базу данных firebase через веб-браузер.

2) Затем пользователь Y посещает мою веб-страницу, и Y проходит проверку подлинности и может выполнять запись в мою базу данных firebase через веб-браузер. Однако после аутентификации пользователя Y пользователь X начинает получать сообщения журнала консоли «Отказано в разрешении» в браузере и больше не может выполнять запись в firebase.

Почему X теряет права аутентификации при проверке подлинности Y?

Вот Node.js серверный код:

 token = Fb.auth().createCustomToken(uid, params);
...
response.render('pages/xyz', {settings:settings, token:token, ...});
  

Вот html / js, доставленный Node.js к браузеру:

 firebase.initializeApp(<%- JSON.stringify(settings);%>);
db = firebase.database();
function initApp() {
    firebase.auth().onAuthStateChanged(function(user) {
        if (user) {
            //do nothing
        }
    });
}

$('document').ready(function(){
    initApp();
    firebase.auth().signInWithCustomToken('<%=token%>').catch(function(error) {
        // Handle Errors here.
    });
});
  

Комментарии:

1. Вы пытаетесь аутентифицировать несколько пользователей на одной вкладке браузера? Это не сработает. Для проверки подлинности Firebase требуется не более одного пользователя, вошедшего в систему, для каждого приложения.

2. Ах да. Я тестировал это, открывая две разные вкладки браузера (для двух разных пользователей) в одном браузере.

3. Это не сработает. Если вы хотите протестировать локально, попробуйте другие браузеры или обычную вкладку окно инкогнито.

4. K спасибо. Если вы напишете это как ответ ниже, я пометлю его как правильный.

Ответ №1:

Только один человек может быть аутентифицирован в приложении одновременно.

Если вы откроете несколько вкладок в одном окне браузера, они, скорее всего, окажутся одним пользователем.

Чтобы иметь несколько пользователей на одном компьютере, используйте другой дополнительный браузер или откройте окно инкогнито.