【问题标题】:Firebase token verification on server服务器上的 Firebase 令牌验证
【发布时间】:2020-07-31 06:38:31
【问题描述】:

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

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

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

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

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

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

我可能缺少与 JWT 相关的内容?

PS。我已经使用远程验证实现了选项 (1),但这会显着影响应用程序的性能。

【问题讨论】:

    标签: firebase firebase-authentication jwt jwt-auth


    【解决方案1】:

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

    正如他们的名字所暗示的那样:

    • 您的 私有 密钥只能在受信任的环境中使用,例如您的开发机器、您控制的服务器或 Cloud Functions。所以这些是您可以生成身份验证令牌的唯一地方。

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

    【讨论】:

    • 谢谢,有道理!我在思考的过程中有点困惑,错过了该令牌最初是由 Firebase 使用另一个密钥签名的。
    猜你喜欢
    • 2017-10-30
    • 2023-03-20
    • 2022-08-16
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 2023-01-12
    相关资源
    最近更新 更多