2017-07-14 54 views
2

我想在客戶端上使用authWithCustomToken()時,產生與火力的Admin SDK火力AUTH /無效定製令牌

const uid = '91f0bf4c-3e3c-441c-a21d-6a7fee341db5' 
firebaseAdmin.auth().createCustomToken(uid) 

定製令牌有了這個特定的UID有時自定義標記工作,其他時間我得到這個錯誤:

「auth/invalid-custom-token」 The custom token format is incorrect. Please check the documentation."

有什麼辦法可以調試令牌正在發生什麼?從表面上看這兩個「好」標記和「壞」的標記看起來是一樣的:

他們有3個部分,由.

  • 分離第一部分是36個字符,並在兩個工作案例和案例是完全相同的
  • 在這兩個例子中,第二部分是392個字符,它們幾乎完全相同
  • 這兩個例子,第三部分是342個字符長,它們是不同的。

回答

1

令牌已過期。 Firebase SDK引發同樣的錯誤:auth/invalid-custom-token錯誤的格式化令牌和過期的令牌。

希望錯誤處理很快就會改善,同時開發人員可以通過使用客戶端庫(如jtw decode)並檢查「exp」時間戳並與當前時間進行比較來檢查令牌是否已過期。

1

你可以去https://jwt.io並解碼你的自定義令牌。它應該是這樣的:

{ 
    "uid": "some-uid", 
    "iat": 1500147255, 
    "exp": 1500150855, 
    "aud": "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit", 
    "iss": "[email protected]_PROJECT_ID.iam.gserviceaccount.com", 
    "sub": "[email protected]_PROJECT_ID.iam.gserviceaccount.com" 
} 

YOUR_PROJECT_ID應與客戶方的項目相同的項目。

+0

謝謝!在這裏解碼它的工作和兩個令牌具有相同的數據,除了不同的iat和exp值 – dylanjha

+0

奇怪的是,這種錯誤偶爾會發生嗎? – bojeil

+0

每天幾十次,這不是「罕見」,但它不常見 – dylanjha