简单的 GitHub OAuth 控制器,适用于 iOS
将 GitHubOAuthController 文件夹中的文件添加到您的项目中。
.plist
中设置 URL 模式 <key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.dkhamsing.GitHubOAuthDemo</string>
<key>CFBundleURLSchemes</key>
<array>
<string>githuboauthdemo</string>
</array>
</dict>
</array>
githuboauthdemo://
// configure (get redirectUri from plist)
[[GitHubOAuthController sharedInstance] configureForSafariViewControllerWithClientId:kClientId clientSecret:kClientSecret redirectUri:redirectUri scope:kScope];
// show login
[[GitHubOAuthController sharedInstance] presentOAuthSafariLoginFromController:self];
// get access token
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
NSString *source = options[UIApplicationOpenURLOptionsSourceApplicationKey];
if ([source isEqualToString:gh_safariViewService]) {
[[GitHubOAuthController sharedInstance] handleOpenUrl:url options:options success:^(NSString *accessToken, NSDictionary *raw) {
NSLog(@"oauth with safari view controller: retrieved access token: %@ \nraw: %@", accessToken, raw);
} failure:nil];
};
return NO;
}
#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];
GitHubOAuthController 包含一个示例项目。
此项目受到 Caleb Davenport 的 SimpleAuth 的启发。
GitHubOAuthController 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。