/AFOAuth1Client

AFNetworking Extension for OAuth 1.0a Authentication

Primary LanguageObjective-CMIT LicenseMIT

AFOAuth1Client

AFOAuth1Client is an extension for AFNetworking that simplifies the process of authenticating against an OAuth 1.0a provider.

Usage

NSURL *baseURL = [NSURL URLWithString:@"https://twitter.com/oauth/"];
AFOAuth1Client *OAuth1Client = [[AFOAuth1Client alloc] initWithBaseURL:baseURL
                                                                   key:@"..."
                                                                secret:@"..."];

Register your application to launch from a custom URL scheme, and use that with the path /success as your callback URL. The callback for the custom URL scheme should send a notification, which will complete the OAuth transaction.

NSURL *callbackURL = [NSURL URLWithString:@"x-com-YOUR-APP-SCHEME://success"];
[OAuth1Client authorizeUsingOAuthWithRequestTokenPath:@"/request_token"
                                userAuthorizationPath:@"/authorize"
                                          callbackURL:callbackURL
                                      accessTokenPath:@"/access_token"
                                              success:^(AFOAuth1Token *accessToken) {
                                                  NSLog(@"Success: %@", accessToken);
                                              }
                                              failure:^(NSError *error) {
                                                  NSLog(@"Error: %@", error);
                                              }];

Responding to the custom URL scheme on iOS:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)URL
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation
{
    NSNotification *notification =
        [NSNotification notificationWithName:kAFApplicationLaunchedWithURLNotification
                                      object:nil
                                    userInfo:@{kAFApplicationLaunchOptionsURLKey: URL}];
    [[NSNotificationCenter defaultCenter] postNotification:notification];

    return YES;
}

Contact

Mattt Thompson

License

AFOAuth1Client is available under the MIT license. See the LICENSE file for more info.