Back4App 使用 PFUser 类的经过身份验证的权限创建用户

Posted

技术标签:

【中文标题】Back4App 使用 PFUser 类的经过身份验证的权限创建用户【英文标题】:Back4App create user using authenticated permission for PFUser class 【发布时间】:2021-06-20 08:19:49 【问题描述】:

作为管理员,我想从 ios 应用创建其他用户。在我的系统中,我希望通过我的管理面板创建用户。

我已将公共权限切换为 User 类的身份验证:

当只选择公共复选标记时,我可以使用以下代码在数据库中创建新用户:

func createUser(with params: [String : Any], completion: @escaping (Result<User?, NSError>) -> ()) 
        let pfUser = PFUser()
        pfUser.username = params["username"] as? String
        pfUser.password = params["password"] as? String
        pfUser.email = params["email"] as? String
        
        pfUser["firstname"] = params["firstname"] as? String
        pfUser["lastname"] = params["lastname"] as? String
                    
        let imageFile = PFFileObject(name:"image.jpg", data:params["avatar"] as! Data)
                    
        pfUser["avatar"] = imageFile
        
        pfUser.signUpInBackground  (succeeded, error) in
            if let error = error 
                print(error)
                completion(.failure(error as NSError))
             else 
                print("User created successfully")
                let user = User()
                user.setPFUser(user: pfUser)
                completion(.success(user))
            
        
    

但是现在我收到了认证类级别权限的错误Permission denied, user needs to be authenticated.

有什么解决办法吗?也许我可以注入 auth token 或像这样的 smth,我为当前的管理员用户创建另一个用户。

【问题讨论】:

【参考方案1】:

首先,作为管理员,您的用户表中应该有一个管理员用户。

正如您提到的,您有一个“管理员用户”,只需以该用户身份登录您的管理面板并创建新用户。

【讨论】:

感谢您的回复!你的意思是默认的一些管理员用户,或者我在哪里可以找到这个用户?这是一些特定的设置吗? 或者你的意思是我需要添加一些列来指定用户是管理员,无论如何从我的问题中你可以看到这看起来不适用于非公共权限,对吧? 默认情况下您可以简单地拥有一个管理员用户。公共(未经过身份验证的用户)可以从用户类中读取您的数据,但不能写入。

以上是关于Back4App 使用 PFUser 类的经过身份验证的权限创建用户的主要内容,如果未能解决你的问题,请参考以下文章

错误:Facebook 身份验证对此用户无效。使用 Back4App 进行颤振

Back4App 删除关联对象脚本。类似于 AWS lambda

使用 Back4App 发送 ParsePush 通知

back4App,使用alamofire查询

back4app云代码功能问题与ES版本

XCode - Swift - 使用 Parse 进行 Facebook 身份验证