根据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];
}
}];
目前还有其他人能够让这个工作吗?
答案 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)
}
}
}
}
}
}