firebase auth / invalid-custom-token

时间:2017-07-14 19:35:28

标签: firebase firebase-authentication

我正在尝试使用firebase admin sdk生成自定义令牌

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

使用此特定uid有时自定义标记可以工作,有时在客户端使用authWithCustomToken()时会出现此错误:

  

“AUTH /无效定制令牌”   自定义标记格式不正确。请查看文档。"

有什么办法可以调试令牌的内容吗?从表面上看," good"代币和“坏”"令牌看起来一样:

它们有3个部分,以.

分隔
  • 第一部分长度为36个字符,在工作情况和破损情况下都是完全相同的
  • 在两个示例中,第二部分是392个字符,它们几乎完全相同
  • 这两个例子,第三部分长度为342个字符,它们是不同的。

2 个答案:

答案 0 :(得分:3)

您可以转到https://jwt.io并解码自定义令牌。它应该是这样的:

{
  "uid": "some-uid",
  "iat": 1500147255,
  "exp": 1500150855,
  "aud": "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit",
  "iss": "firebaseserviceaccount@YOUR_PROJECT_ID.iam.gserviceaccount.com",
  "sub": "firebaseserviceaccount@YOUR_PROJECT_ID.iam.gserviceaccount.com"
}

YOUR_PROJECT_ID应与客户端项目中的同一项目匹配。

答案 1 :(得分:2)

令牌已过期。 Firebase SDK会针对格式错误的令牌和过期的令牌发出相同的错误:auth/invalid-custom-token错误。

希望错误处理很快得到改善,同时开发人员可以通过使用jtw decode等客户端库并检查" exp"来检查令牌是否已过期。时间戳并与当前时间进行比较。