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.
Supported Services
...and more to come!
Usage
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 = [NSURL URLWithString:WFGoogleNativeRedirectURIString]; WKWebView *webView = [sessionManager authorizationWebViewWithScope:WFGoogleProfileScope redirectURI:redirectURI completionHandler:^(WFOAuth2Credential *credential, NSError *error) { NSLog(@"Token: %@", credential.accessToken); }]; // Display web view to user
Installation
Carthage
To integrate WFOAuth2 into your Xcode project using Carthage, specify it in your Cartfile:
github "DeskConnect/WFOAuth2" ~> 0.1
CocoaPods
To integrate WFOAuth2 into your Xcode project using CocoaPods, specify it in your Podfile:
target 'MyApp' do
pod 'WFOAuth2', '~> 0.1'
end
Swift Package Manager
To integrate WFOAuth2 into your project using the Swift Package Manager, specify it in your Package.swift file:
import PackageDescription let package = Package( name: "MyApp", dependencies: [ .Package(url: "https://github.com/DeskConnect/WFOAuth2.git", majorVersion: 0, minor: 1), ] )
Contributing
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.
License
WFOAuth2 is available under the MIT license. See the LICENSE file for more info.