Не может быть постоянной аутентификации Google (Firebase) - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь иметь постоянную аутентификацию Google с Firebase. Я могу войти в систему успешно, но сеанс не сохраняется, если я перезагружаю страницу.

Вот мой код:

firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)
.then(function()
{
    let provider = new firebase.auth.GoogleAuthProvider();
    firebase.auth().signInWithPopup(provider)
    .then(function (result)
    {
        //Save auth data
    });
})
.catch(function(error)
{
    console.error(error);
});

Это в основном то, что написано в документации и должно быть довольно простым. Я действительно не знаю, что мне не хватает.

Кроме того, я не знаю, что должно происходить, когда сеанс является постоянным, будет ли он проходить аутентификацию в режиме без вывода сообщений или он откроет всплывающее окно, аутентифицируется, а затем автоматически закроет всплывающее окно?

Спасибо!

1 Ответ

0 голосов
/ 23 мая 2019

Состояние входа автоматически сохраняется в локальном хранилище вашего браузера и восстанавливается при перезагрузке страницы / приложения. Чтобы обнаружить изменения в состоянии аутентификации, используйте прослушиватель onAuthStateChanged, как показано здесь :

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});

Этот слушатель будет запускаться как при активном входе пользователя (т. Е. При завершении вызова signInWithPopup), так и при и при восстановлении состояния входа пользователя после перезагрузки приложения / страницы.

...