使用Firebase身份验证的JWT令牌有效负载不一致

时间:2017-08-14 12:38:52

标签: javascript firebase firebase-authentication

使用Firebase Web SDK 4.2.0对用户进行身份验证可在JWT令牌中提供两个不同的有效负载。有时它包含这个:

{
  "azp": "...",
  "aud": "...",
  "sub": "...",
  "email": "...",
  "email_verified": true,
  "at_hash": "...",
  "iss": "accounts.google.com",
  "iat": 1502712944,
  "exp": 1502716544
}

和其他时间:

{
  "iss": "https://securetoken.google.com/{FIREBASE_PROJECT_ID}",
  "name": "...",
  "picture": "...",
  "aud": "...",
  "auth_time": 1502642892,
  "user_id": "...",
  "sub": "...",
  "iat": 1502711791,
  "exp": 1502715391,
  "email": "...",
  "email_verified": true,
  "firebase": {
    "identities": {
      "google.com": [
        "{GOOGLE_USER_ID}"
      ],
      "email": [
        "..."
      ]
    },
    "sign_in_provider": "google.com"
  }
}

这里发生了什么?由于我正在进行服务器端验证(在Go中,不使用Admin SDK),如果响应具有一致的格式,将会很有帮助。

1 个答案:

答案 0 :(得分:0)

第一个令牌是Google ID令牌。第二个是Firebase ID令牌。您可以从发行人(iss)了解。您似乎在某些情况下会将Google ID令牌发送到您的服务器,而其他情况下会将Firebase ID令牌发送给您。