Skip to content

Commit 3b15076

Browse files
committed
fix: prefetch crash
it was possible that the issuer could be an empty string ('') which would indeed cause the app to crash, since our `invariant` check missed that. fixes #478 Update index.js Create short-lies-behave.md
1 parent 8d2f1e7 commit 3b15076

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

.changeset/short-lies-behave.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'react-native-app-auth': patch
3+
---
4+
5+
fix hard crash if config object was incorrect

packages/react-native-app-auth/index.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,31 @@ import base64 from 'react-native-base64';
44

55
const { RNAppAuth } = NativeModules;
66

7-
const validateIssuerOrServiceConfigurationEndpoints = (issuer, serviceConfiguration) =>
7+
const validateIssuer = issuer => typeof issuer === 'string' && issuer.length;
8+
const validateIssuerOrServiceConfigurationEndpoints = (issuer, serviceConfiguration) => {
89
invariant(
9-
typeof issuer === 'string' ||
10+
validateIssuer(issuer) ||
1011
(serviceConfiguration &&
1112
typeof serviceConfiguration.authorizationEndpoint === 'string' &&
1213
typeof serviceConfiguration.tokenEndpoint === 'string'),
1314
'Config error: you must provide either an issuer or a service endpoints'
1415
);
16+
};
1517
const validateIssuerOrServiceConfigurationRegistrationEndpoint = (issuer, serviceConfiguration) =>
1618
invariant(
17-
typeof issuer === 'string' ||
19+
validateIssuer(issuer) ||
1820
(serviceConfiguration && typeof serviceConfiguration.registrationEndpoint === 'string'),
1921
'Config error: you must provide either an issuer or a registration endpoint'
2022
);
2123
const validateIssuerOrServiceConfigurationRevocationEndpoint = (issuer, serviceConfiguration) =>
2224
invariant(
23-
typeof issuer === 'string' ||
25+
validateIssuer(issuer) ||
2426
(serviceConfiguration && typeof serviceConfiguration.revocationEndpoint === 'string'),
2527
'Config error: you must provide either an issuer or a revocation endpoint'
2628
);
2729
const validateIssuerOrServiceConfigurationEndSessionEndpoint = (issuer, serviceConfiguration) =>
2830
invariant(
29-
typeof issuer === 'string' ||
31+
validateIssuer(issuer) ||
3032
(serviceConfiguration && typeof serviceConfiguration.endSessionEndpoint === 'string'),
3133
'Config error: you must provide either an issuer or an end session endpoint'
3234
);

0 commit comments

Comments
 (0)