Как получить currentUser при первой загрузке в firebase-auth без запроса - PullRequest
0 голосов
/ 16 января 2019

Я использую аутентификацию firebase, и моя навигационная панель зависит от того, вошел ли пользователь в систему или нет. Когда я загружаю веб-сайт, если пользователь ранее не выходил из системы, он все равно должен оставаться зарегистрированным. Но Firebase onAuthStateChanged слушатель возвращает пользователя через 100-300 мс, поэтому моя панель навигации не может решить, вошел ли пользователь в систему или нет. navbar показывает кнопку входа и регистрации в течение 300 мс, затем firebase возвращает пользователя, а navbar показывает панель управления и кнопку выхода из системы.

Я использую vue, я пытался сохранить UID и имя пользователя в localalstorage, но я беспокоюсь о безопасности. Что делать, если кто-то вручную изменил данные локального хранилища? Кроме того, пользователь может выйти из системы, но оставаться в системе можно, установив вручную localStorage.setItem ('user', ....)

Navbar.vue

<div v-if="user.uid" class="flex row space-b">
   // userpic, photo, logout button
</div>
<div v-else>
   // login and signup button 
</div>

vuex

state: {
user: {
  uid: null,
  photoURL: null,
  username: null,
},
},

Я пытался не монтировать экземпляр Vue до тех пор, пока слушатель onAuthStateChanged что-то не вернет, но это не может быть хорошим решением, поэтому я рендерил сайт почти на 300 мс позже.

1 Ответ

0 голосов
/ 16 января 2019

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

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