代码之家  ›  专栏  ›  技术社区  ›  Oleksandr Matrosov

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

  •  0
  • Oleksandr Matrosov  · 技术社区  · 3 年前

    作为管理员,我想从iOS应用程序创建另一个用户。在我的系统中,我希望通过我的管理面板创建用户。

    我已将公共权限切换为用户类的身份验证: enter image description here

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

    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. :

    enter image description here

    有什么解决办法吗?也许我可以为当前管理员用户注入身份验证令牌或smth,这样我就可以为当前的管理员用户创建另一个令牌。

    0 回复  |  直到 3 年前
        1
  •  0
  •   Tanzim Chowdhury    3 年前

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

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

        2
  •  0
  •   gilbriatore    2 年前

    保存pfUser时,您需要发送当前会话令牌。。。(类似这样的东西)

    pfUser.sessionToken = PFUser.current().sessionToken;
    pfUser.signUpInBackground {...}