处理RestKit认证挑战



我正在构建一个iPhone应用程序利用RestKit拉/推数据到远程API。此API需要用户名/密码身份验证。我想知道如何处理一个坏的用户名或密码,如果用户输入一个不工作。我所能找到的是通用的RestKit错误处理程序,这并没有给我带来很多好处:

- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error

如果用户名或密码不正确,将得到:

MyApp iPhone[4758:fb03] W restkit.network:RKResponse.m:157 Failed authentication challenge after 1 failures
MyApp iPhone[4758:fb03] E app:iPhoneSignIn.m:720 Hit error: Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0xd964b80 {NSErrorFailingURLKey=https://my.example.com/api/v1.0/?format=json, NSErrorFailingURLStringKey=https://my.example.com/api/v1.0/?format=json}

我想知道是否有更好的方法来处理不正确的用户名或密码响应?

对于那些还在寻找答案的人来说,我找到了答案。基本上,我下面的代码扫描"-1012"的错误响应,这是NSURL为身份验证失败给出的错误代码。下面是代码:

- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error {
    NSRange range = [[error localizedDescription] rangeOfString:@"-1012"];
    if (range.length > 0){
        //Do whatever here to handle authentication failures
    }
    RKLogError(@"Hit error: %@", error);
}

希望这对你有帮助!

最新更新