在尝试登录失败后,挑战错误显示为null



这是iOS中REST/Webservice身份验证的经典示例。

我的密码是错误的,我得到了其他条件的第二部分,这是正确的行为。

但是[error localizedDescription]显示为空。我原以为这里会显示一个错误。知道我缺了什么吗?

我得到这个:

无法验证:(null)

- (void)connection:(NSURLConnection *)conn didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
    if ([challenge previousFailureCount] == 0) {
        NSURLCredential *newCredential;
        newCredential = [NSURLCredential credentialWithUser:[FTKeychain loadValueForKey:IOS_USER_EMAIL]
                                                   password:[FTKeychain loadValueForKey:IOS_USER_PASSWORD]
                                                persistence:NSURLCredentialPersistenceNone];
        [[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge];
    } else {
        [[challenge sender] cancelAuthenticationChallenge:challenge];
        // inform the user that the user name and password
        // in the preferences are incorrect
        // Why did I fail?
        NSError *error = [challenge error];
        NSLog(@"Can't authenticate: %@", [error localizedDescription]);
        // why is error localizedDescription null ?
    }
}

您的服务没有返回错误。请参阅挑战的类描述,其中说明:

讨论如果协议不使用错误,则此方法返回nil以指示身份验证失败。

我建议将日志记录为整个对象,如果描述是稀疏的,那么其他属性也是如此。

相关内容

  • 没有找到相关文章

最新更新