使用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),如果响应具有一致的格式,将会很有帮助。
答案 0 :(得分:0)
第一个令牌是Google ID令牌。第二个是Firebase ID令牌。您可以从发行人(iss)了解。您似乎在某些情况下会将Google ID令牌发送到您的服务器,而其他情况下会将Firebase ID令牌发送给您。