在重置密码

时间:2015-08-18 20:08:23

标签: ios objective-c parse-platform

我正在尝试通过验证其电子邮件用户名来重置用户密码。 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!");
        }
    }];
}

1 个答案:

答案 0 :(得分:1)

您无法通过尝试在没有密码的情况下登录用户来执行此操作。而是使用指定的电子邮件地址和用户名对用户进行查询,并检查您获得的结果数量。

您不应该检查用户名,因为密码重置是通过电子邮件进行的,如果用户的电子邮件遭到入侵,那么用户名也是如此...