Dumped Google+ SDK.
[UPDATED] Google+ SDK.
This commit is contained in:
@@ -31,9 +31,11 @@ static NSString *const kOAuth2TokenTypeKey = @"token_type";
|
||||
static NSString *const kOAuth2ExpiresInKey = @"expires_in";
|
||||
static NSString *const kOAuth2CodeKey = @"code";
|
||||
static NSString *const kOAuth2AssertionKey = @"assertion";
|
||||
static NSString *const kOAuth2RefreshScopeKey = @"refreshScope";
|
||||
|
||||
// additional persistent keys
|
||||
static NSString *const kServiceProviderKey = @"serviceProvider";
|
||||
static NSString *const kUserIDKey = @"userID";
|
||||
static NSString *const kUserEmailKey = @"email";
|
||||
static NSString *const kUserEmailIsVerifiedKey = @"isVerified";
|
||||
|
||||
@@ -178,6 +180,7 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
refreshToken,
|
||||
code,
|
||||
assertion,
|
||||
refreshScope,
|
||||
errorString,
|
||||
tokenType,
|
||||
scope,
|
||||
@@ -478,6 +481,29 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
}
|
||||
}
|
||||
|
||||
- (void)stopAuthorizationForRequest:(NSURLRequest *)request {
|
||||
@synchronized(authorizationQueue_) {
|
||||
NSUInteger argIndex = 0;
|
||||
BOOL found = NO;
|
||||
for (GTMOAuth2AuthorizationArgs *args in authorizationQueue_) {
|
||||
if ([args request] == request) {
|
||||
found = YES;
|
||||
break;
|
||||
}
|
||||
argIndex++;
|
||||
}
|
||||
|
||||
if (found) {
|
||||
[authorizationQueue_ removeObjectAtIndex:argIndex];
|
||||
|
||||
// If the queue is now empty, go ahead and stop the fetcher.
|
||||
if ([authorizationQueue_ count] == 0) {
|
||||
[self stopAuthorization];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)authorizeRequestImmediateArgs:(GTMOAuth2AuthorizationArgs *)args {
|
||||
// This authorization entry point never attempts to refresh the access token,
|
||||
// but does call the completion routine
|
||||
@@ -608,13 +634,15 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
NSString *accessToken = self.accessToken;
|
||||
NSString *refreshToken = self.refreshToken;
|
||||
NSString *assertion = self.assertion;
|
||||
NSString *code = self.code;
|
||||
|
||||
BOOL hasRefreshToken = ([refreshToken length] > 0);
|
||||
BOOL hasAccessToken = ([accessToken length] > 0);
|
||||
BOOL hasAssertion = ([assertion length] > 0);
|
||||
BOOL hasCode = ([code length] > 0);
|
||||
|
||||
// Determine if we need to refresh the access token
|
||||
if (hasRefreshToken || hasAssertion) {
|
||||
if (hasRefreshToken || hasAssertion || hasCode) {
|
||||
if (!hasAccessToken) {
|
||||
shouldRefresh = YES;
|
||||
} else {
|
||||
@@ -666,7 +694,6 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
|
||||
NSMutableDictionary *paramsDict = [NSMutableDictionary dictionary];
|
||||
|
||||
NSString *commentTemplate;
|
||||
NSString *fetchType;
|
||||
|
||||
NSString *refreshToken = self.refreshToken;
|
||||
@@ -677,14 +704,18 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
// We have a refresh token
|
||||
[paramsDict setObject:@"refresh_token" forKey:@"grant_type"];
|
||||
[paramsDict setObject:refreshToken forKey:@"refresh_token"];
|
||||
|
||||
|
||||
NSString *refreshScope = self.refreshScope;
|
||||
if ([refreshScope length] > 0) {
|
||||
[paramsDict setObject:refreshScope forKey:@"scope"];
|
||||
}
|
||||
|
||||
fetchType = kGTMOAuth2FetchTypeRefresh;
|
||||
commentTemplate = @"refresh token for %@";
|
||||
} else if (code) {
|
||||
// We have a code string
|
||||
[paramsDict setObject:@"authorization_code" forKey:@"grant_type"];
|
||||
[paramsDict setObject:code forKey:@"code"];
|
||||
|
||||
|
||||
NSString *redirectURI = self.redirectURI;
|
||||
if ([redirectURI length] > 0) {
|
||||
[paramsDict setObject:redirectURI forKey:@"redirect_uri"];
|
||||
@@ -696,13 +727,11 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
}
|
||||
|
||||
fetchType = kGTMOAuth2FetchTypeToken;
|
||||
commentTemplate = @"fetch tokens for %@";
|
||||
} else if (assertion) {
|
||||
// We have an assertion string
|
||||
[paramsDict setObject:assertion forKey:@"assertion"];
|
||||
[paramsDict setObject:@"http://oauth.net/grant_type/jwt/1.0/bearer"
|
||||
forKey:@"grant_type"];
|
||||
commentTemplate = @"fetch tokens for %@";
|
||||
fetchType = kGTMOAuth2FetchTypeAssertion;
|
||||
} else {
|
||||
#if DEBUG
|
||||
@@ -749,7 +778,8 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
fetcher = [GTMHTTPFetcher fetcherWithRequest:request];
|
||||
}
|
||||
|
||||
[fetcher setCommentWithFormat:commentTemplate, [tokenURL host]];
|
||||
NSString *const template = (refreshToken ? @"refresh token for %@" : @"fetch tokens for %@");
|
||||
[fetcher setCommentWithFormat:template, [tokenURL host]];
|
||||
fetcher.postData = paramData;
|
||||
fetcher.retryEnabled = YES;
|
||||
fetcher.maxRetryInterval = 15.0;
|
||||
@@ -898,6 +928,7 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
[dict setValue:refreshToken forKey:kOAuth2RefreshTokenKey];
|
||||
[dict setValue:accessToken forKey:kOAuth2AccessTokenKey];
|
||||
[dict setValue:self.serviceProvider forKey:kServiceProviderKey];
|
||||
[dict setValue:self.userID forKey:kUserIDKey];
|
||||
[dict setValue:self.userEmail forKey:kUserEmailKey];
|
||||
[dict setValue:self.userEmailIsVerified forKey:kUserEmailIsVerifiedKey];
|
||||
[dict setValue:self.scope forKey:kOAuth2ScopeKey];
|
||||
@@ -965,6 +996,14 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
[self.parameters setValue:str forKey:kOAuth2AssertionKey];
|
||||
}
|
||||
|
||||
- (NSString *)refreshScope {
|
||||
return [self.parameters objectForKey:kOAuth2RefreshScopeKey];
|
||||
}
|
||||
|
||||
- (void)setRefreshScope:(NSString *)str {
|
||||
[self.parameters setValue:str forKey:kOAuth2RefreshScopeKey];
|
||||
}
|
||||
|
||||
- (NSString *)errorString {
|
||||
return [self.parameters objectForKey:kOAuth2ErrorKey];
|
||||
}
|
||||
@@ -1024,6 +1063,14 @@ finishedRefreshWithFetcher:(GTMHTTPFetcher *)fetcher
|
||||
[self.parameters setValue:str forKey:kServiceProviderKey];
|
||||
}
|
||||
|
||||
- (NSString *)userID {
|
||||
return [self.parameters objectForKey:kUserIDKey];
|
||||
}
|
||||
|
||||
- (void)setUserID:(NSString *)str {
|
||||
[self.parameters setValue:str forKey:kUserIDKey];
|
||||
}
|
||||
|
||||
- (NSString *)userEmail {
|
||||
return [self.parameters objectForKey:kUserEmailKey];
|
||||
}
|
||||
|
Reference in New Issue
Block a user