2016-10-20 75 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

相關問題