WFOAuth2

Introduction

Welcome to the documentation for WFOAuth2, a powerful OAuth 2.0 client library for iOS and macOS. This library provides an easy and secure way to authenticate and authorize your application’s users with various OAuth 2.0 providers.

Features

  • Simplified OAuth 2.0 authentication process
  • Support for multiple OAuth 2.0 providers
  • Secure token management
  • Automatic token refreshing
  • Asynchronous network requests
  • Error handling and callback support

Installation

To use WFOAuth2 in your project, you can choose one of the following methods:

Method 1: CocoaPods

If you are using CocoaPods, add the following line to your Podfile:


pod 'WFOAuth2'

Then, run the command pod install in Terminal.

Method 2: Manual

If you prefer to install the library manually, follow these steps:

  1. Download the latest release from the GitHub repository.
  2. Drag and drop the WFOAuth2.xcodeproj file into your Xcode project.
  3. In the target settings of your project, go to “General” and add WFOAuth2.framework to the “Frameworks, Libraries, and Embedded Content” section.
  4. Ensure that the framework is linked correctly in the “Build Phases” tab.
  5. Import the library in your code using #import <WFOAuth2/WFOAuth2.h>.

Usage

To get started with WFOAuth2, follow these steps:

Step 1: Set Up Configuration

Before performing any authentication requests, you need to set up the configuration for your OAuth 2.0 provider. In your code, create an instance of WFOAuth2Configuration and populate its properties according to your provider’s specifications.


WFOAuth2Configuration *configuration = [[WFOAuth2Configuration alloc] initWithClientID:@"your_client_id"
                                                                    clientSecret:@"your_client_secret"
                                                                       serverURL:[NSURL URLWithString:@"https://oauth-provider.com"]
                                                                 redirectionURL:[NSURL URLWithString:@"your_redirect_uri"]];

Step 2: Perform Authentication Requests

To authenticate users, you can use the WFOAuth2AuthenticationRequest class. Instantiate an authentication request object with the configured WFOAuth2Configuration and present it to the users. Upon successful authentication, the library will automatically obtain and manage access tokens.


WFOAuth2AuthenticationRequest *authRequest = [[WFOAuth2AuthenticationRequest alloc] initWithConfiguration:configuration];

[authRequest authenticateWithPresentingViewController:self completionHandler:^(WFOAuth2Credential *credential, NSError *error) {
    if (credential) {
        // Authentication successful, you can now use the credential
    } else if (error) {
        // Authentication failed, handle the error
    }
}];

Step 3: Access Protected Resources

After the users have authenticated and you have a valid WFOAuth2Credential, you can make requests to your provider’s protected resources. Use the credential to sign your requests and access the desired data.


[id<WFOAuth2CredentialAdapter> requestAuthorizationHeaderFieldWithCredential:credential];

Advanced Topics

Here are some advanced topics that you might find useful:

Topic 1: Token Refreshing

WFOAuth2 automatically manages token refreshing for you. When a token is about to expire, the library will automatically request a new token using the provided clientSecret and refreshToken.

Topic 2: Custom Network Requests

WFOAuth2 provides asynchronous network request support via WFOAuth2NetworkManager. Use this class to perform your own custom network requests using the authenticated credentials.

Topic 3: Error Handling

When working with WFOAuth2, errors can occur during authentication and network requests. The library provides error handling mechanisms and includes a comprehensive set of error codes and descriptions for easy debugging.

Conclusion

WFOAuth2 simplifies the implementation of OAuth 2.0 authentication in your iOS and macOS applications. With its easy-to-use API and built-in security features, you can quickly integrate OAuth 2.0 support and leverage the power of various OAuth 2.0 providers for your app.