WFOAuth2 is an extensible OAuth 2 library for macOS, iOS, tvOS and watchOS. It aims to simplify authenticating your app with a variety of services.
| Slack | |
| Uber | |
| Square |
...and more to come!
WFOAuth2 is very straightforward to use. This is how you authenticate with Google, for example:
WFGoogleOAuth2SessionManager *sessionManager = [[WFGoogleOAuth2SessionManager alloc] initWithClientID:@"XXXX-yyyy.apps.googleusercontent.com"clientSecret:nil];
NSURL *redirectURI = [NSURLURLWithString:WFGoogleNativeRedirectURIString];
WKWebView *webView = [sessionManager authorizationWebViewWithScope:WFGoogleProfileScope
redirectURI:redirectURI
completionHandler:^(WFOAuth2Credential *credential, NSError *error) {
NSLog(@"Token: %@", credential.accessToken);
}];
// Display web view to userTo integrate WFOAuth2 into your Xcode project using Carthage, specify it in your Cartfile:
github "DeskConnect/WFOAuth2" ~> 0.1
To integrate WFOAuth2 into your Xcode project using CocoaPods, specify it in your Podfile:
target 'MyApp' do
pod 'WFOAuth2', '~> 0.1'
end
To integrate WFOAuth2 into your project using the Swift Package Manager, specify it in your Package.swift file:
import PackageDescription
letpackage=Package(
name:"MyApp",
dependencies:[.Package(url:"https://github.com/DeskConnect/WFOAuth2.git", majorVersion:0, minor:1),])If you are interested in contributing to WFOAuth2, check out the list of possible enhancements. We also want to add support for as many services as possible, so you could contribute a WFOAuth2SessionManager subclass for your favorite service.
WFOAuth2 is available under the MIT license. See the LICENSE file for more info.