【问题标题】:Parse - Delete another user as super admin from iOS appParse - 从 iOS 应用程序中删除另一个用户作为超级管理员
【发布时间】:2022-01-04 21:10:16
【问题描述】:

我为我的应用使用 back4app,我想删除另一个用户(此设备上的非授权用户)。

应用程序抛出这个:

[Error]: User cannot be deleted unless they have been authenticated. (Code: 206, Version: 1.19.1)

如果我不是产品的超级管理员,这对我来说很有意义。但如果我有超级管理员权限,我想完全从系统中删除一个用户。

有什么解决方案可以解决这个问题吗?我试图从 Parse.Cloud 代码中找到一些功能。

这个想法是创建云代码并通过像这样调用 smth 从 iOS 设备执行它:

PFCloud.callFunctionInBackground("deleteUserAsSuperAdmin",
        withParameters: user id param here)
        { success, error) -> Void in
 
}

我还没有找到这样的解决方案,对我来说,使用云代码以正确的方式编写这样的代码有点困难,当然这是否是一个选项。

【问题讨论】:

    标签: ios swift parse-platform back4app pfuser


    【解决方案1】:

    您必须为此创建一个云代码函数,并使用useMasterKey 选项删除用户。比如:

    Parse.Cloud.define('deleteUser', async ({ user, params: { userIdToDelete } }) => {
      if (user) {
        const query = new Parse.Query(Parse.Role);
        query.equalTo('name', 'admin');
        query.equalTo('users', user);
        const count = await query.count({ useMasterKey: true });
        if (count === 1) {
          const userToDelete = new Parse.User();
          userToDelete = userIdToDelete;
          return userToDelete.destroy({ useMasterKey: true });
        }
      }
      throw new Error('Not an admin');
    });
    

    【讨论】:

      猜你喜欢
      • 2021-06-23
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      相关资源
      最近更新 更多