У меня вопрос об аутентификации пользователей при разработке приложения iOS. Когда пользователь запускает приложение, на экран будет выведено приглашение, в котором будет предложено ввести правильное имя пользователя и пароль. Как только их учетные данные будут проверены, они смогут получить доступ к остальной части приложения. Я не знаю, как создать эту операцию проверки. Я знаю, как создать визуальную часть приложения, однако, что-то помимо этого я не понимаю. Короче говоря, как вы создаете приложение, которое требует учетных данных от пользователя для работы?Идентификация пользователя пользователя
ответ
Во-первых, Apple отклонит ваше приложение, если оно не может сделать что-то полезно без аутентификации. Во-вторых, вы собираете входные данные от пользователя, тогда вам нужно будет запустить NSURLConnection на ваш сервер, чтобы пройти аутентификацию, наблюдать за ответом и действовать соответствующим образом.
Я знаю, что Apple отвергнет его, если он не сможет сделать что-то полезное. Я понимаю, что собираю данные от пользователя. «Отключите NSURLConnection к вашему серверу, чтобы проверить подлинность, наблюдать за ответом и действовать соответствующим образом». Есть ли какой-либо возможный способ, чтобы вы могли объяснить это немного подробнее? –
Это зависит от того, как настроен ваш сервер, учитывая, что вы проверяете его на своем сервере. Вы бы использовать NSURLConnection
в некоторой степени таким образом, это то, как я делаю это в моем приложении (с учетом ваших параметров):
+ (NSDictionary *)executeCallWithRequest:(NSMutableURLRequest *)request {
NSHTTPURLResponse *response = nil;
NSError *error = nil;
NSData *jsonData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *dataString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
error = nil;
NSDictionary *result = jsonData ? [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:&error] : nil;
if (error == nil && response.statusCode == 200) {
NSLog(@"%i", response.statusCode);
} else {
NSLog(@"%@", dataString);
NSLog(@"%@", [error localizedDescription]);
}
return result;
}
+ (NSDictionary *)executePostWithRequest:(NSMutableURLRequest *)request {
request.HTTPMethod = @"POST";
return [self executeCallWithRequest:request];
}
+ (NSDictionary *)loginUserWithCredentials:(NSDictionary *)userCredentials {
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@", YOUR_URL]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSString *requestFields = [NSString stringWithString:@""];
for (NSString *key in [userCredentials allKeys]) {
requestFields = [requestFields stringByAppendingFormat:@"(param name)&", key, [userCredentials objectForKey:key]];
}
//removes the trailing &
requestFields = [requestFields substringToIndex:requestFields.length - 1];
requestFields = [requestFields stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *requestData = [requestFields dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPBody = requestData;
return [self executePostWithRequest:request];
}
В моем случае я отвечаю с JSON закодированного массива.
Спасибо за ответ. Какой сервер? Как вы можете проверить с помощью сервера? Я никогда не создавал приложение с проверкой прежде, чем простить мое невежество. Нужно ли мне использовать дополнительные фреймворки, активированные в Xcode, для использования проверки? –
Нет, Чарльз у вас нет. И я имею в виду, что у вас должна быть программа на стороне сервера, или нет? С чем вы отказываетесь? Где вы сохраняете информацию о своем пользователе? – 8vius
Чтобы добавить к этому вопросу, приложения, такие как Paypal, Mint.com, Facebook, Twitter и App Store, используют учетные данные для проверки пользователей. Это не может быть сложным или большим секретом, чтобы знать, как это сделать. Мне просто нужна помощь в этом для разработки моего приложения. Im удивил, что яблоко не разработало учебное пособие для создания приложений, которые подтверждают учетные данные пользователя. Опять же, возможно, они есть, и я просто не знаю об этом :-) –
Этот вопрос действительно не связан с iOS, но с общим дизайном приложения – coneybeare
Так как я буду развиваться только в iOS, моя единственная забота - IOS. –