Firebase - 阻止用户身份验证

2023-12-10

如果在以下位置找不到用户的电子邮件,我需要阻止用户身份验证allowedUsers。它并不真正影响应用程序,因为所有操作都将在users列表,但如果没有进行身份验证,那就太好了。

loginWithGoogle() {
    const userDetails = this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider())
      .then(user => {
        console.log(user.user.uid);

        const queryObservable = this.db.list('/allowedUsers', {
          query: {
            orderByChild: 'email',
            equalTo: user.user.email,
          }
        }).subscribe(data => {

          if (data.length > 0) {

            const userObj = {
              admin: false,
              ...
              email: data[0].email,
              name: data[0].name,
              verified: false,
            };

            this.addUser(userObj, user.user.uid);

          }

        });

      });

    return userDetails;
  }

无法阻止用户使用 Firebase 身份验证进行身份验证。当他们进行身份验证时,他们所做的就是说“我是 X Yz”并证明这一点。

你什么can但要做的就是阻止他们访问您的数据库。例如,仅允许白名单用户读取您的数据库:

{
  "rules": {
    ".read": "root.child('allowedUsers').child(auth.uid).exists()"
  }
}

另请参阅:

  • 如何在 Firebase 3.x 中禁用注册
  • 当用户被禁用或删除时,Firebase 身份验证状态更改不会触发(白名单的倒置版本)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase - 阻止用户身份验证 的相关文章

随机推荐

  • 响应式 Durandal 对话框

    我在新应用程序中使用 Durandal 但 Durandal 的对话框窗口存在问题 我使用它从用户那里获取一些数据 当我手动设置窗口宽度时 默认情况下 Durandal 从 JavaScript 设置窗口位置 如果我想要窗口宽度为 600p
  • 如何对数据库模式进行版本控制? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 您如何准备 SQL 增量 您是否手动将每个模式更改 SQL 保存到增量文件夹中 或者您是否有某种自动比较过程 我对版本控制数据库模式以及源代码的约定感兴趣 也许是一个区分模式的预提交挂钩
  • 从字符串中提取所有数字

    假设我有一个字符串 例如123ad456 我想创建一种将数字组分成一个列表的方法 这样输出将类似于123 456 我试过做return Regex Match str d Value 但只输出第一次出现的数字 因此输出将是123 我也知道我
  • POI Excel:获取样式名称

    我想读取应用于 xlsx 文档中单元格的样式的名称 我已经提取了该文件 在 xl styles xml 中我可以找到样式名称
  • 实体框架多对多关系

    好吧 我正在尝试弄清楚如何正确设置我的数据库 我有两节课 public class Event public int EventId get set public string EventName get set and public cl
  • Java 原始类型和泛型交互

    如果我有一个 Stack 类 class Stack
  • 如何使用另一个类中的 Tcpclient 将数据发送到所有已连接的套接字连接

    Closed 这个问题需要细节或清晰度 目前不接受答案 public void send string msg a2 Encoding ASCII GetBytes msg networkStream clientSocket GetStr
  • R 将特定行和列乘以常数

    我有以下数据 type lt c 1 4 year1 lt c 1 4 year2 lt c 1 4 year3 lt c 1 4 data lt data frame type year1 year2 year3 我想将年份列中的底部两行
  • 的 Html 帮助器

    有没有HTMLHelper用于文件上传 具体来说 我正在寻找替代品
  • 如何通过 R 在 Outlook 正文中显示 Excel 工作表

    我可以通过 RDCOMClient 包将 Excel 文件附加到 Outlook 中 但是如何通过R在邮件正文中显示excel工作表内容 假设工作表中包含一个表格和一个图形 library RDCOMClient init com api
  • 为什么像 3.14 这样的浮点值在 MSVC 中默认被视为 double ?

    为什么我需要输入 3 14f 而不是 3 14 来禁用所有这些警告 这有一个连贯的理由吗 这就是 C 和 C 标准所决定的 浮点文字的类型为 double 如果您需要它们是浮点型 则可以在它们后面加上后缀f 似乎没有任何具体说明原因 但我猜
  • Silverlight 是否缓存 Web 服务调用?

    这是问题所在 我的 Silverlight 应用程序正在使用 WebClient 调用名为 getCampaigns 的 HTTP Web 服务 该服务返回 Campaign 对象的 JSON 数据数组 然后 用户可以与请求的对象进行交互
  • 如何解决“您的应用似乎未启用适用于 Android 的 Places API”

    这个错误已经困扰我一天多了 我已经彻底搜索过 但没有一个答案为我提供解决方案 我已经正确设置了 API 密钥 并提供了应用程序限制 提供了包名称和 SHA1 密钥 这是代码 清单文件
  • 如何使用一个或多个 StructType 创建架构 (StructType)?

    我正在尝试创建一个StructType在另一个里面StructType 但它只允许添加一个StructField 我找不到任何添加方法StructType to it 如何创建StructType下面的字符串表示的模式 struct
  • 如何使用 Cargo maven 插件远程部署 WAR 到 JBoss 5.1.0.GA?

    我正在尝试使用 Cargo maven 插件将 WAR 文件远程部署到 JBoss 5 0 1 GA 但似乎不能 我发现了类似的线程 但它们最终都没有帮助我解决我的问题 我遵循这些指示 一些看起来很重要的点是 从 CARGO 1 0 3 开
  • 如何使用powershell按年龄对数据进行排序

    尝试在 powershell 中按年龄对 txt 文件进行排序 数据如下所示 史密斯 约翰 65沃克 卢克 25马诺 吉尔 88 岁 试图让它看起来像这样 马诺 吉尔 88史密斯 约翰 65沃克 卢克 25 我尝试过 Format Tabl
  • 更改 Plotly 动画中的“框架”标签

    TLDR 我想用三个字母缩写而不是每个月的数字来标记框架滑块 我创建了一个条形图 显示 40 年来每个月的平均积雪深度 我从 NOAA 提取数据 然后使用 lubridate 按年份和月份进行分组 这是代码 snow depth lt go
  • 如何在 Azure VM 上同时运行 2 个 VM 自定义脚本扩展

    我已使用 ARM 模板创建了一个 Azure VM 并希望在部署 VM 后在同一 VM 上运行 2 个 VM 脚本扩展 使用ARM模板如何实现 apiVersion variables resourceDeploymentApiVersio
  • Msys2:维护两个 python 安装

    我在 Win 10 下使用 Msys2 便携式 我有 2 个 python 3 8 安装 最初的问题是问是否如此 我现在确定了 所以暂时我想处理他们的维护工作 我还发布了另一个相关问题Msys2 两个 python 安装中的 readlin
  • Firebase - 阻止用户身份验证

    如果在以下位置找不到用户的电子邮件 我需要阻止用户身份验证allowedUsers 它并不真正影响应用程序 因为所有操作都将在users列表 但如果没有进行身份验证 那就太好了 loginWithGoogle const userDetai