Пользователь Persist Firebase для клиентского приложения Node.js - PullRequest
1 голос
/ 17 апреля 2019

Я создаю интерфейс командной строки Node.js (CLI), используя Firebase для аутентификации с помощью серверной части.Я хочу, чтобы пользователь не вводил пароль каждый раз, когда запускает команду.Вместо этого я хочу реализовать поток «входа в систему», который сохраняет учетные данные в файловой системе, которые можно использовать для последующей аутентификации без пароля, пока пользователь не «выйдет из системы».

В основном я ищуfirebase JavaScript SDK функция «сохранения состояния аутентификации».К сожалению, эта функция не поддерживается для Node.js;вызов setPersistence с 'local' или 'session', так как режим вызывает ошибку "Текущая среда не поддерживает указанный тип персистентности."

Какой самый простой способ реализовать эту функцию "самостоятельно"?

Я посмотрел, как SDK сохраняет пользователя в браузере, и в основном он структурирует объект пользователя и сохраняет его в локальном хранилище.Я могу легко легко преобразовать пользовательский объект в Node.js (в экземпляре есть метод toJSON), но не могу понять, как впоследствии десериализовать строку в экземпляр firebase.User.Я вижу эту функцию в исходном коде , которая выглядит так, как будто бы справилась.Но это не раскрывается внешне в SDK AFAIK.

Ответы [ 3 ]

0 голосов
/ 17 апреля 2019

Управление сессиями с сервисными работниками

конечным пользователям будет установлен локальный Node.js - и вы захотите создать интерактивный скрипт Node / приложение , для которого требуется клиент/ token доступ к Firebase.

Firebase Auth предоставляет возможность использовать сервисных работников для обнаружения и передачи токенов Firebase ID для управления сеансом.

Если вы посмотрите, какFirebase CLI сам по себе работает, пользователи входят через веб-браузер, а затем вставляют код авторизации в Firebase CLI (firebase login --no localhost).Затем пользователь входит в систему. Итак, используйте браузер и Firebase Web SDK для сбора учетных данных.

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

Я подробно исследовал это с поддержкой Google Cloud Platform, и мы решили, что это невозможно с текущим SDK. Кстати, эта функция заняла у меня всего несколько часов, чтобы реализовать ее с помощью AWS Cognito. Там конструктор CognitoUser позволяет пользователю передавать свою любимую реализацию Node.js API localStorage.

0 голосов
/ 17 апреля 2019

В приложениях CLI, для которых требуются токены, эти токены обычно хранятся где-то на локальном компьютере (часто в «точечном» файле в домашнем каталоге для машин Linux - например, ~/.yourapp/config.

Эти файлы могут быть в любом формате, который вы хотите, но мне нравится JSON или YAML для хранения подобных вещей.

С точки зрения объекта User вы можете легко загрузить строку с помощью встроенного в Node.js JSON.parse(yourStringUser).

В исходном коде firebase-js-sdk вы можете найти ссылки, где подобное выполняется с хранилищем сеанса; используя метод toJSON() для установки с определенным key и извлекая это значение методом JSON.parse().

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