在 Tapkey 上处理过期 Firebase 令牌的最佳方法

问题描述

我正在使用 Firebase 对我的用户进行身份验证,并使用令牌交换 API 来检索 Tapkey 令牌。

我遇到的问题是用于验证令牌的 Firebase 证书会定期过期,如 Firebase 网站上所述:

最后,确保 ID 令牌由与令牌的孩子声明对应的私钥签名。从 https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com 获取公钥并使用 JWT 库来验证签名。 使用来自该端点的响应的 Cache-Control 标头中的 max-age 值来了解何时刷新公钥。

当前 Firebase 证书的最长期限为 22963 秒(在我写这篇文章时,刚好超过 6 小时)以及将新公钥上传到 Tapkey 的过程 is a manual one.

我正在考虑编写一个脚本,在旧证书过期时下载新证书,并提取公钥。 Tapkey 是否有一个 API 端点,我可以用它来发布我更新的公钥,或者我可以在这里采取其他方法吗?

谢谢

解决方法

目前没有用于更新公钥的公共 API,但 Tapkey 能够使用 Firebase oidc 发现文档 url 而不是公钥。如果进行了配置,Tapkey 将自动处理此类按键翻转。

Firebase 发现文档网址通常类似于 https://securetoken.google.com/[firebase-project-id]/.well-known/openid-configuration

但是,此功能目前尚未公开可用。向 Tapkey 支持发送激活该功能的请求,他们将为您启用它。