Ios 防止仅通过设置用户名创建用户
在我的应用程序中,用户可以使用Parse创建帐户。这很好,但我只是注意到,当我使用新用户名注册时,不注册密码是可以的 我已经对PFUser进行了子分类,这是我的注册:Ios 防止仅通过设置用户名创建用户,ios,objective-c,parse-platform,Ios,Objective C,Parse Platform,在我的应用程序中,用户可以使用Parse创建帐户。这很好,但我只是注意到,当我使用新用户名注册时,不注册密码是可以的 我已经对PFUser进行了子分类,这是我的注册: // LoginViewController.m - (IBAction)signUpButtonPressed:(UIButton *)sender { [self signUpUser:signUpAlertControllerUsernameTextField.text password:si
// LoginViewController.m
- (IBAction)signUpButtonPressed:(UIButton *)sender {
[self signUpUser:signUpAlertControllerUsernameTextField.text
password:signUpAlertControllerPasswordTextField.text];
}
- (void)signUpUser:(NSString *)usernameString password:(NSString *)passwordString {
// Create a new user to sign up.
User *newUser = [User user];
newUser.username = usernameString;
newUser.password = passwordString;
[newUser signUpUser];
}
// User.m
- (void)signUpUser {
[self signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (!error) {
// Sign up success.
NSLog(@"Sign up success");
[[NSNotificationCenter defaultCenter] postNotificationName:@"SignUpSuccessNotification"
object:self];
} else {
// Sign up failed.
NSLog(@"Sign up error: %@", [error userInfo][@"error"]);
}
}];
}
如果我将username textfield留空,则解析响应为:
[Error]: missing username (Code: 200, Version: 1.7.4)
但是当我将密码文本字段留空时,没有任何警告
那么,有没有一种方法可以让Parse在创建新用户时也检测到是否没有输入密码?通过Objective-C验证来实现这一点,而不是期望Parse来实现这一点。例如:
- (void) checkFieldsComplete
{
if ([signUpAlertControllerUsernameTextField.text isEqualToString:@""] || [signUpAlertControllerPasswordTextField.text isEqualToString:@""])
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Oops" message:@"You need to complete all fields" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
else{
[self signUpUser];
}
}
我已经用解析错误代码解决了这个问题。因此,当我使用Parse创建一个新用户时,我现在可以这样做:
if ([error code] == 100) {
NSLog(@"No internet connection");
return;
} else if ([error code] == 200) {
NSLog(@"No username entered in text fields");
return;
} else if ([error code] == 201) {
NSLog(@"No password entered in text fields");
return;
} else if ([error code] == 202) {
NSLog(@"Username taken");
return;
}
然后,我可以根据错误类型使用所有其他方法,解析返回并显示我自己的警报控制器 是的,我正在考虑这样做。但我只是想问问是否可能。像Parse处理username validation@Jordan Johnson一样,由服务器处理服务器验证非常好