This is a universal oauth login controller designed to be used with OAuthConsumer.
It takes a couple of settings for your specific OAuth setup and displays the login in a webview.
// Setup the login controller BTOAuthLoginViewController *loginController = [[[BTOAuthLoginViewController alloc] init] autorelease]; loginController.delegate = self; loginController.consumerKey = @"Your Consumer Key"; loginController.consumerSecret = @"Your Consumer Secret";; // Twitter example loginController.requestTokenEndpoint = @"https://api.twitter.com/oauth/request_token"; loginController.accessTokenEndpoint = @"https://api.twitter.com/oauth/access_token"; loginController.authorizationEndpoint = @"https://api.twitter.com/oauth/authorize"; loginController.consumerRealm = @"https://api.twitter.com"; // This can be anything. It will not be called loginController.authorizationCallbackUrl = @"http://sbtwitter.com"; // This flag is used to hide the cancel bar at the top of the view. This defaults to NO. loginController.hideCancelBar = NO; [self presentModalViewController: loginController];
The login controller will send you the oauth token or alert you of an error using the following delegate methods.
/** * Called when the OAuth login is successful. * * @param token The OAuth token. * @param responseString The response string from the oauth request. */ - (void) BTOAuthLoginDidSucceedWithAccessToken: (OAToken *) token andResponseString: (NSString *) responseString; /** * Called when the OAuth login fails. * * @param error The reason it failed. */ - (void) BTOAuthLoginDidFailWithError: (NSError *) error; /** * Called when the user cancels authentication. */ - (void) BTOAuthLoginCanceled;
This library uses the popular OAConsumer Library and the
ASIHTTPRequest Library to process the login. Thanks to those guys.
This is free to use however.