Skip to content

Commit 55bd472

Browse files
nwoollstoto
authored andcommitted
Support redirect URLs without a scheme specified, such as redirect URLs used by Google APIs
1 parent d999989 commit 55bd472

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

Sources/NSURL+NXOAuth2.m

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,16 @@ - (NSURL *)nxoauth2_URLByAddingParameters:(NSDictionary *)parameterDictionary {
3737

3838
- (NSString *)nxoauth2_valueForQueryParameterKey:(NSString *)key;
3939
{
40-
NSString *queryString = [self query];
40+
//self may not contain a scheme
41+
//for instance Google API redirect url may look like urn:ietf:wg:oauth:2.0:oob
42+
//NSURL requires a valid scheme or query will return nil
43+
NSString *absoluteString = self.absoluteString;
44+
if ([absoluteString rangeOfString:@"://"].location == NSNotFound) {
45+
absoluteString = [NSString stringWithFormat:@"http://%@", absoluteString];
46+
}
47+
NSURL *qualifiedURL = [NSURL URLWithString:absoluteString];
48+
49+
NSString *queryString = [qualifiedURL query];
4150
NSDictionary *parameters = [queryString nxoauth2_parametersFromEncodedQueryString];
4251
return [parameters objectForKey:key];
4352
}

0 commit comments

Comments
 (0)