首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除解析PFUser帐户

删除解析PFUser帐户
EN

Stack Overflow用户
提问于 2016-01-07 09:59:09
回答 2查看 453关注 0票数 0

我有一个应用程序(用Swift编写),它使用Parse,并允许用户创建帐户。我希望用户可以选择删除他们的帐户,但似乎找不到它,也不确定我做错了什么。我希望用户必须验证他们的电子邮件和密码才能发生这种情况。一旦他们删除了自己的账户,就会弹出一个警报,一旦用户解除了警报,他们就会回到登录屏幕并退出应用程序。

这是我尝试过的:

代码语言:javascript
复制
   @IBAction func deleteAccount(sender: AnyObject) {

 if PFUser.currentUser()?.username == emailAddressTextField.text && PFUser.currentUser()?.password == passwordTextFieldOne.text && PFUser.currentUser()?.password == passwordTextFieldTwo.text {

 PFUser.currentUser()?.deleteInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in

            if success {

            let alertController = UIAlertController(title: "Success!", message: "Now Please Login", preferredStyle: .Alert)

            let enterAppAction = UIAlertAction(title: "OK", style: .Default, handler: { (UIAlertAction) -> Void in

                dispatch_async(dispatch_get_main_queue(), { () -> Void in
                    let viewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("Login")
                    self.presentViewController(viewController, animated: true, completion: nil)
                })
            })

                alertController.addAction(enterAppAction)

                self.presentViewController(alertController, animated: true, completion: nil)

            } else {

            print(error)
            self.displayAlert("Account deletion failed", message: "Please try again", actionTitle: "OK")

            }
        })
    }
}
EN

回答 2

Stack Overflow用户

发布于 2016-01-07 15:18:05

您可以创建一个云函数来验证用户是否正确输入了其当前密码,并让它向iOS返回成功/错误,然后您可以删除该帐户(前提是密码检查成功完成)。这是一个relevant Parse forum post

来自引用的帖子:

代码语言:javascript
复制
Parse.Cloud.define(FUNCTION_PASSWORD_CHECK, function(request, response) 
{
    var password = request.params.password;

    Parse.User.logIn(request.user.getUsername(), password, {
        success: function(results) 
        {   
            response.success(true);
        },
        error: function() {
            response.success(false);
        }
    });
}); 

注意:您可以在iOS上执行类似的登录函数,但如果用户输入了错误的密码(我不确定这一点),这可能会影响PFUser.currentUser()。此外,引用的函数使用建议的request.user (即,不将用户作为参数传递),因此它仅适用于具有会话的用户。

票数 0
EN

Stack Overflow用户

发布于 2016-06-18 17:02:34

你最初的if语句:

代码语言:javascript
复制
if PFUser.currentUser()?.username == emailAddressTextField.text && PFUser.currentUser()?.password == passwordTextFieldOne.text && PFUser.currentUser()?.password == passwordTextFieldTwo.text

语句PFUser.currentUser()?.password将返回nil,因为解析不会使您能够访问用户密码。因此,您将无法将用户的密码与文本字段中输入的文本进行比较。

要检查用户是否确实输入了与现有密码匹配的密码,请执行以下操作:

代码语言:javascript
复制
PFUser.logInWithUsernameInBackground(PFUser.currentUser(), password:passwordTextFieldOne.text!) {
    (user: PFUser?, error: NSError?) -> Void in
    if user != nil {
         //continue with delete function   
    } else {
        //Display error
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34646169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档