Когда установить постоянство состояния авторизации Firebase - PullRequest
0 голосов
/ 22 мая 2018

согласно руководству, постоянное состояние аутентификации firebase устанавливается до вызова фактического метода входа в систему:

firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION)
  .then(function() {
    // Existing and future Auth states are now persisted in the current
    // session only. Closing the window would clear any existing state even
    // if a user forgets to sign out.
    // ...
    // New sign-in will be persisted with session persistence.
    return firebase.auth().signInWithEmailAndPassword(email, password);
  })
  .catch(function(error) {
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
  });

См. https://firebase.google.com/docs/auth/web/auth-state-persistence

Однако, не должно ли это бытьнаоборот?Разве я не должен сначала убедиться, что вход в систему был успешным, а затем попытаться установить постоянство?

В предлагаемом подходе у пользователя может быть около 10 неправильных попыток входа в систему, и каждый раз, когда он будет запрашивать firebase, чтобы установить постоянство, даже если вход не был успешным.

Это будет то же самое для регистрации, например.Есть ли реальный способ установить постоянство аутентификации firebase на SESSION или NONE по умолчанию?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

В моих проектах я устанавливаю / сбрасываю его в слушателе onAuthStateChanged.Что-то вроде следующего:

firebase.auth.onAuthStateChanged(authUser => {
  authUser
    ? localStorage.setItem('authUser', JSON.stringify(authUser))
    : localStorage.removeItem('authUser')
});

Подробнее об этом вы можете узнать здесь здесь .

0 голосов
/ 24 мая 2018

На самом деле, он довольно гибкий.Вы можете установить его один раз, и всегда будут применяться последние настройки.Вам не нужно это каждый раз.Он будет помнить последний параметр сохранения, пока вы не перезагрузите страницу.

Также у вас есть возможность изменить постоянство после входа в систему. Так что, если пользователь входит в систему и используется постоянство по умолчанию,затем вы устанавливаете постоянство на SESSION, пользовательское состояние будет преобразовано в SESSION.

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