You do not need to bother with NSUserDefaults nor any keychain wrapper if you use NSURLCredential. Indeed NSURLCredential is much simpler to use, as it allows you to store both username and password in the keychain in two lines of code. Your code would be something like that once the user is logged in: NSURLCredential *credential; credential = [NSURLCredential credentialWithUser:username password: