当我选择使用Firebase的谷歌联合登录时,我可以显示有关用户的哪些信息?

时间:2018-12-27 03:26:12

标签: firebase firebase-authentication google-authentication

我使用我的网站创建了Google联合登录。它用作身份验证层,因此我只有目标用户群。用户登录时如何以及从用户那里获得什么信息?

2 个答案:

答案 0 :(得分:2)

关于获得的有关用户的信息,您可以查看可用属性列表以及将在the official documentation中检索到的信息。

但是对于您有关如何将“特定人群”列入白名单的问题:您可以做的是创建数据库安全规则,以检查auth object并根据其电子邮件地址限制访问。

实时数据库

{
  "rules": {
    ".read": "(auth.token.email == 'mybuddy@gmail.com' || auth.token.email == 'anotherfriend@gmail.com')",
    ".write": "(auth.token.email == 'mybuddy@gmail.com' || auth.token.email == 'anotherfriend@gmail.com')"
  }
}

Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if isWhiteListedUser();
    }
  }

  function isWhiteListedUser () {
    return request.auth.token.email == 'mybuddy@gmail.com'
    || request.auth.token.email == 'anotherfriend@gmail.com';
  }
}

将整个用户域列入白名单

如果您的Google登录名应限制在Gsuite帐户的某个域中,则也可以只检查要允许使用您的应用的their email addresses are ending with the domain

".read": "auth.token.identifier.endsWith('@company.com')"

答案 1 :(得分:0)

确定的最简单方法是? ...使用浏览器开发人员工具(cntrl + shift + i)浏览用户对象。

在您的.onAuthStateChanged观察者内部放了console.dir(firebase.auth().currentUser)

登录,然后检查您的开发工具控制台。现在,您将拥有一个可扩展的Firebase User对象,其中包含Firebase为该用户提供的所有内容。