2016-10-20 45 views
8

我的Firebase客户端应用程序与自定义后端服务器进行通信,因此我需要将带有每个HTTPS请求的ID令牌发送到我的服务器。从参考,什么时候应该将FirebaseUser.getToken(Boolean forcerefresh)设置为true?

Should only be set to true if the token is invalidated out of band 
  1. 我什么时候设置forcerefresh布尔值true
  2. 在向我的自定义服务器发送每个HTTPS请求期间获取令牌(使用forcerefresh为false)是否可以使用。 (因为它返回的任务,难道我把它保存在我的本地缓存中,这样我就不用加任何任务监听器,并可以处理在同一个线程请求)

编辑: 现在谷歌提供了新的api,它会自动刷新令牌过期。

getIdToken(forceRefresh) returns firebase.Promise containing string 

从谷歌文档

返回当前的令牌,如果它没有过期,否则这将刷新令牌,并返回一个新

回答

4

一般来说,设置forceRefresh到假。这是推荐的行为。但是,这取决于你在做什么。 您可能希望确保您的令牌始终处于最新状态并且可以同步使用。为此,您必须在令牌过期之前刷新几分钟。如果您调用getToken(false),您将收回即将到期的缓存令牌,这是不需要的。在这种情况下,您强制刷新并更新令牌。通过这样做,您可以确保在任何时候都有一个未过期的令牌同步。

+0

我如何知道我的令牌即将过期。我是否需要添加代码来检查它的过期时间,以及它是否即将过期而不是调用getToken(true)。 – Bikash

+0

目前令牌的生命周期是一个小时。您也可以使用客户端jwt解析器解析它并检查它的到期时间。 – bojeil

相关问题