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

0

У меня есть угловое приложение JS, которое получает данные из службы REST с сервером sql-сервера. Я разрабатываю и контролирую все 3 части - угловое приложение, сервис отдыха и базу данных.

Я хочу добавить pizazz, сделав это приложение в режиме реального времени, используя Firebase. Мой вопрос: могу ли я сохранить текущую службу отдыха и базу данных по большей части и использовать только базу данных Firebase и библиотеку минимально и только там, где это необходимо для поддержки в реальном времени?

  • 0
    да, вы можете сделать это. Вы даже можете заставить свой сервер отдыха генерировать токены авторизации для Firebase, так что вам нужно управлять сессиями и пользователями только из одного места.
  • 0
    @rob спасибо, это действительно приятно знать. Я буду читать документацию на сайте Firebase, чтобы начать!
Теги:
firebase

1 ответ

0

Вы можете сделать это с помощью JSON Web Tokens (JWT). Это возможно, потому что, как вы упомянули в своем вопросе, вы управляете службой REST и SQL-сервером. Таким образом, поскольку сервер доверен, вы можете подключить его к базе данных Firebase, выполнив аутентификацию с помощью JWT.

В результате вы можете управлять учетными записями пользователей так, как вы сейчас делаете, с добавлением "pizzaz" для создания подмножества данных, доступных "в режиме реального времени". Приложения JWT для Firebase могут быть сгенерированы с любой существующей библиотекой генерации JWT, а затем подписаны подписи SHA-256 HMAC.

Аутентификационные серверы

Поскольку вы используете надежный сервер, который подключает вашу собственную базу данных Firebase, вы можете аутентифицировать его несколькими способами:

  1. Использование секретного приложения Firebase: все методы проверки подлинности могут принимать секретное приложение Firebase вместо токена JWT. Это предоставит серверу полный доступ для чтения и записи ко всей базе данных Firebase. Этот доступ никогда не истекает, если он не будет отменен с помощью панели приложений.

  2. Использование безопасного JWT с дополнительным требованием администратора, установленным в true: этот метод предоставит серверу полный доступ для чтения и записи ко всей базе данных Firebase. Этот токен истекает нормально, поэтому важно установить время истечения соответственно.

  3. Использование защищенного JWT, предназначенного для доступа только к частям данных, к которым нужно трогать сервер: этот метод более сложный, но это самый безопасный способ аутентификации сервера, поскольку он позволяет правилам безопасности и Firebase запрещать серверу что-либо делать он не должен, даже если он каким-то образом скомпрометирован.

Источник: Firebase Documentation - https://www.firebase.com/docs/web/guide/login/custom.html

Создание токенов

Для многих платформ имеются библиотеки-помощники, но для этого примера я буду использовать генератор токенов Firebase для Node.js, предоставленный Firebase.

Генератор токенов Firebase для Node.js: https://github.com/firebase/firebase-token-generator-node

Шаг 1. Установите пакет, используя npm или Bower (или скомпилируйте из источника).

Шаг 2. Скопируйте секрет приложения с панели инструментов экземпляра Firebase.

Шаг 3: Создайте токен, используя Node.js, передав секретное приложение Firebase в конструктор FirebaseTokenGenerator, например:

var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator("<YOUR_FIREBASE_SECRET>");
var token = tokenGenerator.createToken({uid: "1", some: "arbitrary", data: "here"});
  • 0
    спасибо @dmax за подробную информацию, которую я обязательно буду использовать в ближайшем будущем. Я буду обновлять этот пост, как все прошло.
  • 0
    нет проблем, @SamDevx! Это первый ответ, который я когда-либо отправлял в SO, и любые отзывы или предложения о том, как его улучшить, будут очень благодарны. Будем рады услышать, как это сработало для вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню