我正在使用Firebase Admin在我的NodeJs应用程序中登录。客户端将通过发送idToken(从Firebase获取)进行登录,然后NodeJs服务器将使用admin. auth().verizyIdToken(idToken)获取用户。
结果将如下所示:
{ iss: 'https://securetoken.google.com/myapp-5cde1',
name: 'Manh Hung',
picture: 'https://graph.facebook.com/185960225411xxx/picture',
aud: 'xxxxxx-5cde1',
auth_time: 1526626xxx,
user_id: 'uCxxxxxxxxxxxxxxxQR4d2',
sub: 'uCwNoxxxxxxxxxxxxxxuQR4d2',
iat: 15266xxx1,
exp: 15266xxx91,
firebase:
{ identities: { 'facebook.com': [Array] },
sign_in_provider: 'facebook.com' },
uid: 'uCxxxxxxxxxxxxxxxQR4d2'
}
是的,我通过脸谱网通过“sign_in_provider:'facebook.com'”获得了用户的注册方式。但是我不知道如何获得用户的脸谱网ID。有人能给我一个建议吗?非常感谢!
该特定信息在ID令牌中不可用。您需要使用Firebase管理SDK查找用户并检查提供程序数据:
admin.auth().getUser(uid)
.then(function(userRecord) {
// Assuming the first provider linked is facebook.
// The facebook ID can be obtained as follows.
console.log(userRecord.providerData[0].uid);
})
.catch(function(error) {
console.log("Error fetching user data:", error);
});