我是否可以使用 Firebase 令牌 (JWT) 来识别过期日期>超过 1 小时的用户?



我使用Cloud Firestore for Firebase来存储有关NodeJ中编写的Rest API服务的信息。

因此,对Node的每个请求都会向Firebase询问有关该服务的信息,首先,它会授权该请求。

我认为使用用户生成的JWT将是最好的解决方案,因为客户端只需在其请求中包含JWT即可对自己进行授权。

Firebase JWT与生成它的用户的uid相关。显然,将有一个控制面板,用户可以在其中使用email/pw登录并生成JWT,然后JWT将包含在他的客户端系统中,例如,像需要API密钥来识别用户并工作的简单API一样。

因此,这个想法似乎很有效,但我注意到Firebase JWT仅在1小时内过期用户必须每小时登录一次控制面板才能重新生成JWT。那不太友好。

如何避免这个问题?我怎样才能使JWT在1小时内过期?

根据文档:

令牌的最长生存期为24小时+偏斜。

[…]

,偏斜时间长达10分钟。

这意味着你不能永远使用这些代币,这是有道理的。

我查看了自定义代币,发现:

自UNIX epoch以来令牌过期的时间(以秒为单位(。它最多可以比iat晚3600秒。注意:这只控制自定义令牌本身过期的时间。但是,一旦用户使用signInWithCustomToken((登录,他们将一直登录到设备中,直到他们的会话无效或用户注销。

也许你可以对signInWithCustomToken()做点什么,因为一旦登录,它只有在用户无效或注销时才会过期,但我认为最好的做法是寻找另一种方法。