【问题标题】:Remove user from Firebase Auth从 Firebase 身份验证中删除用户
【发布时间】:2021-02-28 01:34:41
【问题描述】:

我正在使用来自 firebase 的电子邮件/密码身份验证来管理对我的 Angular 应用程序的身份验证。我创建了一个管理面板来管理基于 CRUD 的用户来控制应用程序上的用户。

到目前为止,我已经设法创建新用户并使用他们的 localID 来在实时数据库中存储有关该用户的其他信息,例如姓名、年龄等

我遇到的问题是在查看 firebase auth api (https://firebase.google.com/docs/reference/rest/auth#section-create-email-password) 的文档时,它指的是使用当前用户登录时创建的 IdToken。我希望能够编辑/删除与当前登录的用户不同的用户,但我在文档中找不到与此相关的任何内容?

如果我在错误的地方寻找任何帮助,或者如果不可能的话,任何解决方法都非常感谢?

【问题讨论】:

    标签: angular firebase firebase-authentication


    【解决方案1】:

    从客户端删除与当前登录用户不同的用户似乎是不可能的。不然会不会很危险?

    你可以做什么:

    • 创建一个可从客户端调用的云函数,
    • 在这个函数中,检查权限,
    • 然后使用 admin SDK 删除用户
    exports.deleteUser = functions.https.onCall(async (data, context) => {
      const uidToDelete = data.uidToDelete;
      const uid = context.auth.uid;
    
      if(!canDelete(uid, uidToDelete))
        return "forbidden";  
    
      await admin.auth().deleteUser(uidToDelete);
    
      return "done";
    });
    

    这在guidesreference 中有描述。

    【讨论】:

    • 耻辱,不明白他们为什么无法实施一种方法来执行此操作,因为将登录的受信任用户将管理该帐户。还是谢谢
    • 要强制只有受信任的用户才能删除其他用户,我们需要一种检查权限的方法,可以使用功能代码,也可以使用专门针对此用例的身份验证的安全规则。您更喜欢编写安全规则而不是函数吗?
    • 我可以尝试使用 SDK,但之前没有任何使用经验。遗憾的是 REST api 只有一半的功能,尽管我使用 firebase auth 来控制访问
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 2019-08-15
    • 2013-10-23
    • 2019-07-20
    • 2018-05-04
    相关资源
    最近更新 更多