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 应用程序中删除另一个用户作为超级管理员的主要内容,如果未能解决你的问题,请参考以下文章