服务器上的Firebase令牌验证

时间:2020-04-17 17:15:33

标签: firebase firebase-authentication jwt jwt-auth

我正在尝试使用Firebase实施身份验证/授权系统,并且正在努力完成授权流程的最后一部分,即使我的服务器能够验证令牌的有效性。

有两种方法可以执行此操作:

  1. 使用firebase的管理SDK验证令牌,实质上是服务器与Firebase通信并验证令牌(安全选项)
  2. 使用第三方JWT库验证令牌。

根据documentation is perfectly feasible,我的问题与选项(2)有关。问题是,这怎么安全?根据以下规定,令牌验证过程中包含的所有内容都是公开的:

最后,请确保ID令牌已由与该令牌的孩子声明相对应的私钥签名。从https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com中获取公钥,并使用JWT库来验证签名。使用

如果令牌是公开的,并且验证令牌的密钥是公开的,谁能保证令牌是真实的?

可能我缺少与JWT相关的东西吗?

PS。我已经通过远程验证实现了选项(1),但这将严重影响应用程序的性能。

1 个答案:

答案 0 :(得分:1)

您可以使用 public 密钥验证令牌的有效性,但只能使用 private 创建令牌。 em>键。

顾名思义:

  • 您的私有密钥仅应在受信任的环境中使用,例如开发计算机,您控制的服务器或Cloud Functions。因此,这些是可以生成身份验证令牌的唯一位置。

  • public 密钥可以与其他人共享,这意味着他们可以使用它来确保令牌有效。