Simple social authentication for iOS.
Objective-C Ruby
Pull request Compare This branch is 89 commits behind calebd:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Providers
SimpleAuth.xcodeproj
SimpleAuth
SimpleAuthDemo
.gitignore
LICENSE
Podfile
Podfile.lock
Readme.markdown
SimpleAuth.podspec

Readme.markdown

SimpleAuth

SimpleAuth is designed to do the hard work of social account login on iOS. It has a small set of public APIs backed by a set of "providers" that implement the functionality needed to communicate with various social services.

SimpleAuth currently has the following providers:

Installing

Install SimpleAuth with CocoaPods. For example, to use Facebook and Twitter authentication, add

pod 'SimpleAuth/Facebook'
pod 'SimpleAuth/Twitter'

to your Podfile.

Usage

Configuring and using SimpleAuth is easy:

// Somewhere in your app boot process
SimpleAuth.configuration[@"twitter"] = @{
    @"consumer_key" : @"KEY",
    @"consumer_secret" : @"SECRET"
};
// Authorize
- (void)loginWithTwitter {
    [SimpleAuth authorize:@"twitter" completion:^(id responseObject, NSError *error) {
        NSLog(@"%@", responseObject);
    }];
}

Implementing a Provider

The API for creating providers is pretty simple. Be sure to look at SimpleAuthProvider and SimpleAuthWebLoginViewController. These classes will help you simplify your authentiction process. Providers should be stored in Providers/ and have an appropriately named folder and sub spec. All providers are automatically registered with the framework. There are a handful of methods you'll need to implement:

Let SimpleAuth know what type of provider you are registering:

+ (NSString *)type {
    return @"facebook";
}

Optionally, you may return a set of default options for all authorization options to use:

+ (NSDictionary *)defaultOptions {
    return @{
        @"permissions" : @[ @"email" ]
    };
}

Finally, provide a method for handling authorization:

- (void)authorizeWithCompletion:(SimpleAuthRequestHandler)completion {
    // Use values in self.options to customize behavior
    // Perform authentication
    // Call the completion
}

The rest is up to you! I welcome contributions to SimpleAuth, both improvements to the library itself and new providers.

License

SimpleAuth is released under the MIT license.

Thanks

Special thanks to my friend @soffes for advising on the SimpleAuth API design.

Contributors