Firebase的实时功能,同时保持我自己的休息服务和后端数据库



我有一个angular JS应用程序,它从sql server后台的REST服务中获取数据。我开发并控制了所有3部分- angular应用程序,rest服务和数据库。

我现在想通过使用Firebase使这个应用程序接近实时添加pizazz。我的问题是-我可以保留我目前的rest服务和数据库的大部分,只使用Firebase数据库和库最低限度,只有在必要时支持实时?

您可以使用JSON Web Tokens (JWTs)来完成此操作。这是可能的,因为正如您在问题中提到的,您控制REST服务和SQL服务器。因此,由于该服务器是受信任的,您可以使用JWT对其进行身份验证,从而将其连接到Firebase数据库。

因此,你可以保持管理用户帐户的方式,你目前所做的增加了"pizzaz",使数据子集"近实时"可用。Firebase应用程序JWT可以使用任何现有的JWT生成库生成,然后使用SHA-256 HMAC签名进行签名。

<

验证服务器/strong>

由于您正在运行连接您自己的Firebase数据库的受信任服务器,因此您可以通过以下几种方式对其进行身份验证:

  1. 使用Firebase应用秘密:所有身份验证方法都可以接受Firebase应用秘密而不是JWT令牌。这将使服务器完成对整个Firebase数据库的读写访问。这个访问永远不会过期,除非它通过应用程序被撤销仪表板。

  2. 使用安全JWT并将可选的admin声明设置为true:此方法将授予服务器对数据的完整读写访问权限整个Firebase数据库。这个令牌将正常过期,所以它是

  3. 使用安全的JWT,只允许访问服务器需要访问的数据块:这种方法更复杂,但它不需要访问是对服务器进行身份验证的最安全的方法,因为它允许安全性和Firebase规则防止服务器做任何不应该做的事情

来源:Firebase文档-https://www.firebase.com/docs/web/guide/login/custom.html

<

生成令牌/strong>

许多平台都有可用的Helper库,但在这个例子中,我将使用Firebase提供的用于Node.js的Firebase Token Generator。

Firebase令牌生成器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"});

最新更新