69 lines
2.3 KiB
Markdown
69 lines
2.3 KiB
Markdown
# AFOAuth2Manager
|
|
|
|
AFOAuth2Manager is an extension for [AFNetworking](http://github.com/AFNetworking/AFNetworking/) that simplifies the process of authenticating against an [OAuth 2](https://tools.ietf.org/html/rfc6749) provider.
|
|
|
|
## Example Usage
|
|
|
|
### Authentication
|
|
|
|
```objective-c
|
|
NSURL *baseURL = [NSURL URLWithString:@"http://example.com/"];
|
|
AFOAuth2Manager *OAuth2Manager =
|
|
[[AFOAuth2Manager alloc] initWithBaseURL:baseURL
|
|
clientID:kClientID
|
|
secret:kClientSecret];
|
|
|
|
[OAuth2Manager authenticateUsingOAuthWithURLString:@"/oauth/token"
|
|
username:@"username"
|
|
password:@"password"
|
|
scope:@"email"
|
|
success:^(AFOAuthCredential *credential) {
|
|
NSLog(@"Token: %@", credential.accessToken);
|
|
}
|
|
failure:^(NSError *error) {
|
|
NSLog(@"Error: %@", error);
|
|
}];
|
|
```
|
|
|
|
### Authorizing Requests
|
|
|
|
```objective-c
|
|
AFHTTPSessionManager *manager =
|
|
[[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
|
|
|
|
[manager.requestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
|
|
|
[manager GET:@"/path/to/protected/resource"
|
|
parameters:nil
|
|
progress:nil
|
|
success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
|
|
NSLog(@"Success: %@", responseObject);
|
|
}
|
|
failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
|
|
NSLog(@"Failure: %@", error);
|
|
}];
|
|
```
|
|
|
|
### Storing Credentials
|
|
|
|
```objective-c
|
|
[AFOAuthCredential storeCredential:credential
|
|
withIdentifier:serviceProviderIdentifier];
|
|
```
|
|
|
|
### Retrieving Credentials
|
|
|
|
```objective-c
|
|
AFOAuthCredential *credential =
|
|
[AFOAuthCredential retrieveCredentialWithIdentifier:serviceProviderIdentifier];
|
|
```
|
|
|
|
## Documentation
|
|
|
|
Documentation for all releases of AFOAuth2Manager are [available on CocoaDocs](http://cocoadocs.org/docsets/AFOAuth2Manager/).
|
|
|
|
|
|
## License
|
|
|
|
AFOAuth2Manager is available under the MIT license. See the LICENSE file for more info.
|