/GitHubOAuthController

Simple GitHub OAuth Controller for iOS

Primary LanguageObjective-CMIT LicenseMIT

GitHubOAuthController

Simple GitHub OAuth Controller for iOS

Build Status Version License Platform

Installation

platform :ios, '9.0'
pod 'GitHubOAuthController'

Manual

Add the files in the GitHubOAuthController folder to your project.

Usage

Traditional in app OAuth

#import "GitHubOAuthController.h"

GitHubOAuthController *oAuthController = [[GitHubOAuthController alloc] initWithClientId:kClientId clientSecret:kClientSecret scope:kScope success:^(NSString *accessToken, NSDictionary *raw) {
  NSLog(@"access token: %@ \nraw: %@", accessToken, raw);
} failure:nil];
    
[oAuthController showModalFromController:self];

OAuth with Safari View Controller

  • Set url scheme in .plist

plist

	<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleURLName</key>
			<string>com.dkhamsing.GitHubOAuthDemo</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>GitHubOAuthDemo</string>
			</array>
		</dict>
	</array>
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    NSString *source = options[UIApplicationOpenURLOptionsSourceApplicationKey];
    if ([source isEqualToString:gh_safariViewService]) {
        [[NSNotificationCenter defaultCenter] postNotificationName:kCloseSafariViewController object:nil];
        
        [[GitHubOAuthController sharedInstance] requestAccessTokenWithUrl:url success:^(NSString *accessToken, NSDictionary *raw) {
            NSLog(@"oauth with safari view controller: retrieved access token: %@ \nraw: %@", accessToken, raw);
        } failure:nil];
        
        return YES;
    };
    
    return NO;
}

Demo

GitHubOAuthController includes a demo project.

Thanks

This project was inspired by Caleb Davenport's SimpleAuth.

Contact

License

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