Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export type AuthConfiguration = BaseAuthConfiguration & {
additionalParameters?: BuiltInParameters & { [name: string]: string };
dangerouslyAllowInsecureHttpRequests?: boolean;
useNonce?: boolean;
usePKCE?: boolean;
};

export interface AuthorizeResult {
Expand Down
2 changes: 2 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export const authorize = ({
clientSecret,
scopes,
useNonce = true,
usePKCE = true,
additionalParameters,
serviceConfiguration,
dangerouslyAllowInsecureHttpRequests = false,
Expand All @@ -54,6 +55,7 @@ export const authorize = ({

if (Platform.OS === 'ios') {
nativeMethodArguments.push(useNonce);
nativeMethodArguments.push(usePKCE);
}

return RNAppAuth.authorize(...nativeMethodArguments);
Expand Down
12 changes: 8 additions & 4 deletions ios/RNAppAuth.m
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ - (dispatch_queue_t)methodQueue
additionalParameters: (NSDictionary *_Nullable) additionalParameters
serviceConfiguration: (NSDictionary *_Nullable) serviceConfiguration
useNonce: (BOOL *) useNonce
usePKCE: (BOOL *) usePKCE
resolve: (RCTPromiseResolveBlock) resolve
reject: (RCTPromiseRejectBlock) reject)
{
Expand All @@ -51,6 +52,7 @@ - (dispatch_queue_t)methodQueue
clientSecret: clientSecret
scopes: scopes
useNonce: useNonce
usePKCE: usePKCE
additionalParameters: additionalParameters
resolve: resolve
reject: reject];
Expand All @@ -67,6 +69,7 @@ - (dispatch_queue_t)methodQueue
clientSecret: clientSecret
scopes: scopes
useNonce: useNonce
usePKCE: usePKCE
additionalParameters: additionalParameters
resolve: resolve
reject: reject];
Expand Down Expand Up @@ -165,13 +168,14 @@ - (void)authorizeWithConfiguration: (OIDServiceConfiguration *) configuration
clientSecret: (NSString *) clientSecret
scopes: (NSArray *) scopes
useNonce: (BOOL *) useNonce
usePKCE: (BOOL *) usePKCE
additionalParameters: (NSDictionary *_Nullable) additionalParameters
resolve: (RCTPromiseResolveBlock) resolve
reject: (RCTPromiseRejectBlock) reject
{

NSString *codeVerifier = [[self class] generateCodeVerifier];
NSString *codeChallenge = [[self class] codeChallengeS256ForVerifier:codeVerifier];
NSString *codeVerifier = usePKCE ? [[self class] generateCodeVerifier] : nil;
NSString *codeChallenge = usePKCE ? [[self class] codeChallengeS256ForVerifier:codeVerifier] : nil;
NSString *nonce = useNonce ? [[self class] generateState] : nil;

// builds authentication request
Expand All @@ -186,7 +190,7 @@ - (void)authorizeWithConfiguration: (OIDServiceConfiguration *) configuration
nonce:nonce
codeVerifier:codeVerifier
codeChallenge:codeChallenge
codeChallengeMethod:OIDOAuthorizationRequestCodeChallengeMethodS256
codeChallengeMethod: usePKCE ? OIDOAuthorizationRequestCodeChallengeMethodS256 : nil
additionalParameters:additionalParameters];

// performs authentication request
Expand All @@ -205,7 +209,7 @@ - (void)authorizeWithConfiguration: (OIDServiceConfiguration *) configuration
strongSelf->_currentSession = nil;
if (authState) {
resolve([self formatResponse:authState.lastTokenResponse
withAdditionalParameters:authState.lastAuthorizationResponse.additionalParameters]);
withAdditionalParameters:authState.lastTokenResponse.additionalParameters]);
} else {
reject(@"RNAppAuth Error", [error localizedDescription], error);
}
Expand Down