【问题标题】:Firebase 3 - Additional Auth Scope DataFirebase 3 - 其他身份验证范围数据
【发布时间】:2016-10-03 18:05:01
【问题描述】:

在 Firebase 3 文档中,他们说您可以获取额外的范围数据,例如:

可选:指定您希望从身份验证提供程序请求的其他 OAuth 2.0 范围。要添加范围,请调用 addScope。例如: provider.addScope('https://www.googleapis.com/auth/plus.login');

一旦通过身份验证,我就找不到作为“用户”对象一部分的数据。知道如何选择额外的数据吗?

谢谢,

【问题讨论】:

    标签: firebase firebase-authentication


    【解决方案1】:

    当请求额外的 OAuth 2.0 范围时,Firebase V3 不会返回额外请求的数据。您需要做的是检索返回的凭据(signInWithPopup 和 getRedirectResult 提供),然后使用凭据中的 Google accessToken 调用 google api 来请求其他数据。

    【讨论】:

    • 我也是这么想的,但是看着 @firebase 存储库中的示例,看起来他们能够从身份验证侦听器访问他们想要的所有数据。尝试自己重新创建它并且我没有得到他们分配给变量的任何字段。你有任何示例代码吗? :github.com/firebase/quickstart-js/blob/master/auth/…
    • 他们在示例代码中访问的数据只是当前用户及其始终可用的属性。您可以从 auth.currentUser.* 访问它们。您还可以访问提供商特定的数据:auth.currentUser.providerData[indexOfGoogleProviderId].email/displayName 等。在通过 result.user 检索的 signInWithPopup 中返回另一个用户引用。
    【解决方案2】:

    我已经对此进行了测试,并以 Github 为例,只有当用户的电子邮件地址在 github 上设置为公开时,才能检索到用户的电子邮件地址。当电子邮件地址设置为私有时,传递 user:email 范围无效。例如

    provider = new firebase.auth.GithubAuthProvider();
    provider.addScope('user:email');
    

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2019-02-21
      • 2021-03-01
      • 1970-01-01
      相关资源
      最近更新 更多