使用电子邮件地址作为用户名时,无法重置解析用户的密码

时间:2015-02-14 02:08:37

标签: ios parse-platform

根据docs,密码重置请求会检查用户名电子邮件地址字段:

  

这会尝试将给定的电子邮件与用户的电子邮件或   用户名字段,并将向他们发送密码重置电子邮件。通过做   这样,您可以选择让用户使用他们的电子邮件作为用户名,或者   您可以单独收集它并将其存储在电子邮件字段中。

然而,当我尝试这个时,我正在接收

[Error]: invalid email address (Code: 125, Version: 1.6.2)

要明确的是,我正在收集用户的有效电子邮件地址,并按照说明将其存储为用户名。我正在使用以下方式请求重置:

[PFUser requestPasswordResetForEmailInBackground:theEmailAddress
                                               block:^(BOOL succeeded, NSError *error) {
                                                   if (!error)
                                                   {
                                                       [self showAlertWithTitle:@"Reset Successful" message:@"Check your email to complete the password reset process."];
                                                   }
                                                   else
                                                   {
                                                       NSLog(@"%@", [error userInfo]);
                                                       NSString *errorString = [error userInfo][@"error"];
                                                       [self showAlertWithTitle:@"Reset Failed" message:errorString];
                                                   }
                                               }];

目前还有其他人能够让这个工作吗?

1 个答案:

答案 0 :(得分:0)

电子邮件是“用户”类中的帐户的一部分吗?

如果没有,那将是你的问题。您收到无效的电子邮件错误的事实告诉我,用户不存在或您用来存储电子邮件的变量theEmailAddress不正确。

<强>更新

所以下面的代码对我有用。对不起,它在Swift中,但我认为你应该能够了解最新情况。

我要求用户在另一个View Controller中输入他们的用户名,然后我使用该信息检索电子邮件...我的应用程序的情况不允许用户输入他们的电子邮件,我必须要求他们提供首先输入用户名。)。

可能也很重要的是要注意我使用的是较旧版本的Parse SDK,因此它可能是您使用的版本的错误。此外,Parse昨天发布了更新,因此可能值得下载它以查看它是否发生了任何变化。

 PFCloud.callFunctionInBackground("checkAccountStatus", withParameters: ["username" : username, "operation" : 2]) {
        (answer: AnyObject!, error: NSError!) -> Void in

        if (error == nil) {

                self.email = answer[3] as String!

                PFUser.requestPasswordResetForEmailInBackground(self.email){
                    (success: Bool!, error: NSError!) -> Void in

                    if (success == true) {

                        let emailAlert = UIAlertController (title: "Password Reset", message: "An email containing information on how to reset your password has been sent to " + self.email + ".", preferredStyle: UIAlertControllerStyle.Alert)

                        let emailCancel = UIAlertAction (title: "Dismiss", style: .Cancel, handler: nil)

                        emailAlert.addAction(emailCancel)

                        self.presentViewController(emailAlert, animated: true, completion: nil)
                    }
                }
            }
        }
    }
}
相关问题