Безопасно ли хранить учетные данные пользователя Firebase в локальном хранилище или в хранилище сеансов? - PullRequest
1 голос
/ 11 февраля 2020

Чтобы повысить производительность моего приложения реагирования при перезагрузке страницы, я сохраняю учетные данные пользователя в локальном хранилище и очищаю их при выходе из системы. Но пользователи часто не выходят из системы в эти дни, и учетные данные пользователя могут оставаться в локальном хранилище в течение длительного времени, что, я думаю, может привести к некоторым утечкам безопасности? Я не являюсь экспертом в области пожарной безопасности, поэтому кто-то может объяснить, безопасно ли это?

firebase.auth().onAuthStateChanged(user=>{
    if (user) {
        localStorage.setItem('user', JSON.stringify(user));
    } else {
        localStorage.removeItem('user');
    }
})

1 Ответ

1 голос
/ 11 февраля 2020

На большинстве платформ Firebase Authentication SDK уже автоматически сохраняет учетные данные пользователя в локальном хранилище и перезагружает их оттуда при перезапуске приложения / перезагрузке страницы. Причина, по которой вы по-прежнему видите задержку при перезагрузке страницы до запуска onAuthStateChanged, заключается в том, что клиент проверяет сервер, чтобы убедиться, что учетные данные (все еще) действительны.

Простой обходной путь, позволяющий действовать Сразу после загрузки страницы , в то время как Firebase проверяет учетные данные, - это сохранить значение о последнем известном состоянии аутентификации в локальном хранилище самостоятельно и использовать его для определения вашего начального действия. По сути, это то, что вы делаете с объектом user в вашем вопросе.

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

Также см. Мой ответ на этот связанный вчера вопрос: Firebase auth.currentUser имеет значение null при загрузке страницы, пользователь загружается при вызове authstatechange после нескольких миллисекунд загрузки страницы

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