【问题标题】:Firebase Authentication with whitelisted email addresses使用列入白名单的电子邮件地址进行 Firebase 身份验证
【发布时间】:2017-10-03 20:27:22
【问题描述】:

假设教师/学生的场景是什么是处理“电子邮件邀请”的好方法?

使用 CSV 上传我想创建用户或电子邮件白名单,这将限制其他所有人(未受邀)创建帐户。

我是否应该创建自己的登录表单,先检查白名单,然后再创建用户?

是否有某种类型的 BeforeAuth 钩子?哈哈。

【问题讨论】:

    标签: firebase firebase-authentication


    【解决方案1】:

    我建议使用Custom Claims 将身份验证与访问权限分开。允许任何人创建用户,但attach a Cloud Function 对用户创建事件。如果用户匹配白名单上的一个,设置一个custom user claim(这是最近才推出的!)

    最后,在您的规则中,在授予对数据的访问权限之前检查该 use 属性:

    {
      "rules": {
        "adminContent": {
          ".read": "auth.token.admin === true",
          ".write": "auth.token.admin === true",
        }
      }
    }
    

    【讨论】:

    • 所以基本上我会允许他们创建一个帐户,但如果他们不在白名单上,则使用 onCreate 检查并删除该帐户。
    • 这也可以,但我在这里建议您使用 onCreate 来注释用户,然后根据该注释控制对您要限制的内容的访问。否则,您有一些时间可以访问它(在创建用户之后和功能完成之前)。注释路由仅在他们确定后才允许他们访问
    • 我已经根据@IanBarber 的建议写了一个示例代码:code.luasoftware.com/tutorials/firebase/…
    【解决方案2】:

    FirebaseAuth 仅用于验证一个人是他/她所说的那个人。它不限制使用。

    FirebaseAuth documentation

    成功登录后,您可以访问用户的基本资料 信息,并且您可以控制用户对存储在 其他 Firebase 产品。您还可以使用提供的身份验证 用于在您自己的后端服务中验证用户身份的令牌

    即您可以使用 Firebase 身份验证来验证用户是他们所说的身份,但是根据他们的用户个人资料信息中的信息来限制他们使用您的服务由您决定

    但是,您可以将 FirebaseAuth 与其他 Firebase 服务(例如与身份验证集成的数据库或存储)结合使用。但是对于您的场景,您仍然需要创建逻辑来限制经过身份验证的用户访问他们不应该使用数据库或存储中的规则访问的数据。你没有在你的问题中指定太多其他内容,所以我现在无法给出更好的答案

    【讨论】:

    • 是的,我可以让教师将“用户配置文件”上传到 Firebase,是的,一旦通过身份验证,我知道我需要设置规则来限制访问。我只是在寻找一种处理帐户创建的聪明方法。我试图阻止任何人创建帐户,但我希望通知学生并允许他们创建自己的密码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2014-01-17
    • 1970-01-01
    • 2017-10-03
    • 2023-03-18
    • 2019-11-18
    相关资源
    最近更新 更多