Parse - 从 iOS 应用程序中删除另一个用户作为超级管理员

Posted

技术标签:

【中文标题】Parse - 从 iOS 应用程序中删除另一个用户作为超级管理员【英文标题】:Parse - Delete another user as super admin from iOS app 【发布时间】: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
 

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

【问题讨论】:

【参考方案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');
);

【讨论】:

以上是关于Parse - 从 iOS 应用程序中删除另一个用户作为超级管理员的主要内容,如果未能解决你的问题,请参考以下文章

从Parse.com删除特定对象

将 IOS 应用程序从一个开发者帐户转移到另一个帐户。如果我从一个帐户中删除并创建另一个帐户,是不是可以更新?

如何从 iOS 的另一个 nsarray 中不存在的核心数据中删除对象?

我可以从 iTunes 中删除我的 iOS 应用程序并将客户转移到另一个应用程序吗?

如何使用 Parse Server 错误从另一个浏览器选项卡检测另一个会话正在进行中

如何在 parse.com 重新创建已删除的安装表