Мы с коллегой наткнулись на ошибку в обоих наших кодах. Мы оба работаем на странице входа. Я использую сетевую библиотеку AFNetworking для подключения к внешнему источнику, который сообщает, действительно ли пользователь зарегистрировался. Друг также (но без какой-либо внешней библиотеки). (Код для ios.)Всегда может войти в систему
Мы столкнулись с одной и той же проблемой: после действительного вызова все идет так, как ожидалось. Но если мы допустим другой недопустимый вызов (например, неправильное имя пользователя и/или пароль), я все равно могу войти в систему.
Почему? Мы не сохраняем никакой информации.
Вот код:
BasicAuth * manger = [BasicAuth sharedManager];
manger = nil;
[[BasicAuth sharedManager] setUsername:@"bad_username" andPassword:@"wrong"];
[[BasicAuth sharedManager] getPath:@"https://stackoverflow.com/users/tokens"
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"operation = %@", [responseObject description]);
NSError *error = nil;
/*
*/
if (error) {
NSLog(@"Error serializing %@", error);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (operation.response.statusCode == 500) {
} else {
NSData *jsonData = [operation.responseString dataUsingEncoding:NSUTF8StringEncoding];
// NSString *errorMessage = [ objectForKey:@"error"];
NSLog(@"We have an issue %@", [error description]);
}
}]; return YES;
Если я называю этот же код, но с правильным именем пользователя/пароль, а затем вызвать приведенный выше код, то я все еще могу войти в систему и информацию, я вернусь является так же, как когда я отправил «хороший» запрос. Кроме того, когда я пытаюсь сделать логин с помощью curl с моего ноутбука, я не сталкиваюсь с теми же проблемами, что заставляет меня думать, что по какой-то причине отправляемая информация не обновляется. Но я не вижу, как и почему. Опять же, используется ли сторонняя библиотека или нет.
Мысли, предложения?
примечание: BasicAuth (см выше) является подклассом AFHTTPCLIENT