我和一位同事偶然发现了我们两个代码中的错误。我们碰巧都在登录页面上工作。我正在使用网络库 AFNetworking 连接到外部源,它会告诉用户是否实际注册。朋友也一样(但没有任何外部图书馆)。(代码适用于 ios。)
我们都遇到了同样的问题:在进行有效调用后,一切都按预期进行。但是,如果我们再次拨打无效电话(例如,错误的用户名和/或密码),我仍然能够登录。
为什么?我们不保存任何信息。
这是一些代码:
BasicAuth * manger = [BasicAuth sharedManager];
manger = nil;
[[BasicAuth sharedManager] setUsername:@"bad_username" andPassword:@"wrong"];
[[BasicAuth sharedManager] getPath:@"/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 发出登录请求时,我并没有遇到同样的问题,这让我认为,由于某种原因,正在发送的信息没有被更新。但我看不出如何或为什么。同样,这与是否使用 3rd 方库有关。
想法、建议?
注意:BasicAuth(见上文)是 AFHTTPCLIENT 的子类