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

问题描述

我正在构建一个应用程序,除了Firebase之外,我还需要使用自己的后端。我也需要在后端验证登录用户的身份。因此,我发现this tutorial是这样做的。我基于docs发送一个idToken并在我节点的admin sdk中验证此标头。我认为我可以在第一次验证后用redis或js映射缓存此令牌10分钟或与用户会话所需的时间一样多,以加快处理速度,而不是在10分钟内验证每个请求。我可能还会将令牌存储在手机中一段时间​​?

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

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

解决方法

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

,

惯例是每次请求都将ID令牌发送到您的后端。如该文档所示,使用Admin SDK verify the token并不昂贵。它不花任何钱。

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...