【问题标题】:Firebase web get provider data (gender and birthday ) in Google and FacebookFirebase Web 获取 Google 和 Facebook 中的提供者数据(性别和生日)
【发布时间】:2018-03-06 11:45:57
【问题描述】:

这是我的 Google 部分

var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().languageCode = 'zh-TW';
provider.addScope('profile');
provider.addScope('https://www.googleapis.com/auth/userinfo.profile');
provider.addScope('https://www.googleapis.com/auth/userinfo.email');
provider.addScope('https://www.googleapis.com/auth/plus.login');
provider.addScope('https://www.googleapis.com/auth/plus.me');
provider.addScope('https://www.googleapis.com/auth/user.birthday.read');
provider.addScope('email');
firebase.auth().signInWithPopup(provider).then(function(result) {
    console.log(result.user)
}).catch(function(error) {
    app.message.register = error.message;
});

这是我的 Facebook 部分

 var provider = new firebase.auth.FacebookAuthProvider();
    provider.addScope('user_birthday');
    firebase.auth().languageCode = 'zh-TW';
    firebase.auth().signInWithPopup(provider).then(function(result) {

      console.log(result.user)

    }).catch(function(error) {

    });

这两部分在console.log(result.user) 中没有得到性别和生日是不是缺少一些设置?或有错误的部分?有什么想法吗?

【问题讨论】:

  • 这有点太宽泛了,两个平台都有点不同。您知道在 facebook 上进行登录审查吗?登录过程中是否会要求您提供生日权限?

标签: javascript facebook firebase firebase-authentication google-login


【解决方案1】:

返回的访问令牌result.credential.accessToken 将提供对这些附加范围的访问。您需要使用该访问令牌查询 Google/Facebook API 以获取此数据(特定于其他请求的范围)。顺便说一句,现在返回特定于 IdP 的一些附加用户信息。查看result.additionalUserInfo.profile的内容。

【讨论】:

  • 您能提供一个示例查询吗?在 result.additionalUserInfo 中不是生日或性别
  • 尝试使用这个很棒的工具来了解如何使用 API developers.google.com/oauthplayground
猜你喜欢
  • 2020-12-18
  • 2020-09-09
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2018-07-07
  • 2020-09-08
相关资源
最近更新 更多