The internet is not only browsers and static HTML pages anymore. Most apps today also talk to servers and get or send their precious data. To prevent unwanted guests to steal your data you must think about authentication.
There is an easy way to add authentication information to a request:
But that’s not cool. You need to add these information to all requests and that can be quite a hassle.
We are lucky as there are some very helpful classes in Cocoa. To store the
credentials we can use the class
NSURLCredential and add them to a
NSURLProtectionSpace to map them to a host. Here is an example of it in
NSURLCredential *cred; NSURLProtectionSpace *space; cred = [NSURLCredential credentialWithUser:@"user" password:@"very!secure$password!!" persistence:NSURLCredentialPersistenceForSession]; space = [[NSURLProtectionSpace alloc] initWithHost:@"webservice.com" port:80 protocol:@"http" realm:@"Secure area" authenticationMethod:nil]; [[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:cred forProtectionSpace:space]; [space release]; [cred release];
That’s all. This way also requests in a
UIWebView can be authenticated.