我正在尝试通过验证其电子邮件和用户名来重置用户密码。 Parse仅为您提供电子邮件检查。在继续之前,我也试图验证用户的用户名。
我的代码无效。我知道这是因为我将密码设置为nil
,但我不知道其他任何方式。
如果有人知道另一种方式,那么如果你能帮助我的话会很棒,谢谢。
self.stringEmailAddress = [self.outletEmailTF.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
self.stringUsername = [self.outletUsernameTF.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if ([self.stringEmailAddress length] == 0 || [self.stringUsername length] == 0) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Oops!" message:@"Make sure you enter a valid Username & Email Address" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
} else {
[PFUser logInWithUsernameInBackground:self.stringUsername password:nil block:^(PFUser *user, NSError *error) {
if (user) {
[PFUser requestPasswordResetForEmailInBackground:self.stringEmailAddress
block:^(BOOL succeeded, NSError *error) {
if (succeeded)
{
NSLog(@"Reset Successful!");
self.outletEmailTF.text = @"";
self.outletLabel.text = @"Password reset has been sent!";
}
else
{
NSLog(@"Reset Unsuccessful!");
self.outletLabel.text = @"Email Address unrecognized!";
}
}];
} else {
NSLog(@"No good!");
}
}];
}
答案 0 :(得分:1)
您无法通过尝试在没有密码的情况下登录用户来执行此操作。而是使用指定的电子邮件地址和用户名对用户进行查询,并检查您获得的结果数量。
您不应该检查用户名,因为密码重置是通过电子邮件进行的,如果用户的电子邮件遭到入侵,那么用户名也是如此...