Firebase Web身份验证-管理员批准新帐户

Firebase Web身份验证-管理员批准新帐户,firebase,firebase-authentication,Firebase,Firebase Authentication,我有oAuth的用户名和本地用户名/pwds(电子邮件地址) 我的问题是:是否有人知道如何在其中引入额外的步骤,以便新帐户在完全验证之前必须经过站点管理员的批准?我想调整/利用user.emailVerified属性,但我认为这对oAuth用户不起作用 有没有一个简单的方法来做到这一点-添加一个管理员批准步骤?或者,Firebase身份验证子系统中是否有可以轻松切换的属性 通过Firebase身份验证创建用户只为他们提供唯一的用户id。这不允许他们访问您的应用程序或以任何方式“注册”他们。那完全

我有oAuth的用户名和本地用户名/pwds(电子邮件地址)

我的问题是:是否有人知道如何在其中引入额外的步骤,以便新帐户在完全验证之前必须经过站点管理员的批准?我想调整/利用
user.emailVerified
属性,但我认为这对oAuth用户不起作用

有没有一个简单的方法来做到这一点-添加一个管理员批准步骤?或者,Firebase身份验证子系统中是否有可以轻松切换的属性


通过Firebase身份验证创建用户只为他们提供唯一的用户id。这不允许他们访问您的应用程序或以任何方式“注册”他们。那完全是你的职权范围。它只不过是唯一凭证(如Facebook ID或电子邮件/密码哈希)到唯一Firebase ID的映射

您可以通过拥有所需的任何访问权限和将用户添加到数据库(或任何其他适当机制)的任何工作流来“注册”用户

假设使用数据库,您会将用户配置文件/元数据写入路径,例如
/users/$uid
,并根据
/users/
是否存在来制定安全规则

要强制执行管理员批准,最简单的答案是维护一个单独的路径,例如只有管理员(当然还有安全规则)才能访问的
/registered//true

现在,您可以编写如下规则:

{
  "...some path...": {
     ".read": "root.child("registered/" + auth.uid).val() === true"
  }
}

基本上强制执行注册过程。

通过Firebase身份验证创建用户只为他们提供唯一的用户id。这不允许他们访问您的应用程序或以任何方式“注册”他们。那完全是你的职权范围。它只不过是唯一凭证(如Facebook ID或电子邮件/密码哈希)到唯一Firebase ID的映射

您可以通过拥有所需的任何访问权限和将用户添加到数据库(或任何其他适当机制)的任何工作流来“注册”用户

假设使用数据库,您会将用户配置文件/元数据写入路径,例如
/users/$uid
,并根据
/users/
是否存在来制定安全规则

要强制执行管理员批准,最简单的答案是维护一个单独的路径,例如只有管理员(当然还有安全规则)才能访问的
/registered//true

现在,您可以编写如下规则:

{
  "...some path...": {
     ".read": "root.child("registered/" + auth.uid).val() === true"
  }
}

基本上强制执行注册过程。

这很有意义。因此,这将使我能够添加我正在寻找的“授权”功能。非常感谢。好的,但是在
auth.onAuthStateChanged
上如何确定登录用户是否已注册/授权?换句话说,我只想向注册/授权用户显示链接/按钮。我想简单地做
db.ref('/registered/'+uid).once('value')。然后(函数(snap){if(snap.val()==true){//登录用户已授权})这安全吗?这样做吗?我用数据库的截图更新了我的问题。“经销商”=您答案中的“注册”用户,即相同的想法。非常感谢你的帮助,这很有道理。因此,这将使我能够添加我正在寻找的“授权”功能。非常感谢。好的,但是在
auth.onAuthStateChanged
上如何确定登录用户是否已注册/授权?换句话说,我只想向注册/授权用户显示链接/按钮。我想简单地做
db.ref('/registered/'+uid).once('value')。然后(函数(snap){if(snap.val()==true){//登录用户已授权})这安全吗?这样做吗?我用数据库的截图更新了我的问题。“经销商”=您答案中的“注册”用户,即相同的想法。非常感谢你的帮助。