在节点管理 sdk 中对其进行身份验证后,我是否应该将 Firebase idTokens 缓存一段时间?

Should I cache Firebase idTokens for a while, after I authenticated it in node admin sdk?

我正在构建一个应用程序,除了 Firebase 之外,我还需要使用我自己的后端。我也需要在我的后端验证登录用户。所以我找到了this tutorial which does this. I send an idToken and verify this header in admin sdk in my node, based on the docs。我想我可以在第一次验证后用 redis 或只是一个 js 映射缓存此令牌 10 分钟或用户会话所需的时间,以加快速度,而不是在 10 分钟的会话中验证每个请求。我也可以将令牌缓存在 phone 中一段时间​​?

我的问题是,这会带来什么安全后果?谢谢。

为了澄清我没有使用自定义令牌,我将使用内置的 Firebase 身份验证。

一些 Firebase 后端服务会保留一小部分最近的 ID 令牌及其解码结果的缓存。因此,如果他们收到完全相同的令牌,他们将使用已经解码的结果。这是一个无风险的操作,因为解码操作是幂等的:相同的输入将始终提供相同的输出。

约定是在每次请求时将 ID 令牌发送到您的后端。如该文档中所示,使用 Admin SDK verify the token 并不昂贵。不花钱

通常您应该做的是使用侦听器检测 ID 令牌何时更改(它将每小时自动刷新一次),并继续使用该令牌,直到 SDK 向您的回调发送一个新令牌。在 Web 客户端中,您应该使用 onIdTokenChanged 来注册回调以获取此令牌随时间的更改。无需保留或缓存此令牌 - 只需使用最近提供的回调即可。