@axa-fr/react-oidc 6.10.15 → 6.10.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,7 +26,7 @@ const TOKEN_TYPE = {
26
26
  refresh_token: 'refresh_token',
27
27
  access_token: 'access_token',
28
28
  };
29
- const performRevocationRequestAsync = (url, token, token_type = TOKEN_TYPE.refresh_token, client_id) => __awaiter(void 0, void 0, void 0, function* () {
29
+ const performRevocationRequestAsync = (url, token, token_type = TOKEN_TYPE.refresh_token, client_id, timeoutMs = 10000) => __awaiter(void 0, void 0, void 0, function* () {
30
30
  const details = {
31
31
  token,
32
32
  token_type_hint: token_type,
@@ -45,7 +45,7 @@ const performRevocationRequestAsync = (url, token, token_type = TOKEN_TYPE.refre
45
45
  'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
46
46
  },
47
47
  body: formBodyString,
48
- });
48
+ }, timeoutMs);
49
49
  if (response.status !== 200) {
50
50
  return { success: false };
51
51
  }
@@ -53,7 +53,7 @@ const performRevocationRequestAsync = (url, token, token_type = TOKEN_TYPE.refre
53
53
  success: true,
54
54
  };
55
55
  });
56
- const performTokenRequestAsync = (url, details, extras, oldTokens, tokenRenewMode) => __awaiter(void 0, void 0, void 0, function* () {
56
+ const performTokenRequestAsync = (url, details, extras, oldTokens, tokenRenewMode, timeoutMs = 10000) => __awaiter(void 0, void 0, void 0, function* () {
57
57
  for (const [key, value] of Object.entries(extras)) {
58
58
  if (details[key] === undefined) {
59
59
  details[key] = value;
@@ -72,7 +72,7 @@ const performTokenRequestAsync = (url, details, extras, oldTokens, tokenRenewMod
72
72
  'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
73
73
  },
74
74
  body: formBodyString,
75
- });
75
+ }, timeoutMs);
76
76
  if (response.status !== 200) {
77
77
  return { success: false, status: response.status };
78
78
  }
@@ -82,18 +82,18 @@ const performTokenRequestAsync = (url, details, extras, oldTokens, tokenRenewMod
82
82
  data: (0, parseTokens_1.parseOriginalTokens)(tokens, oldTokens, tokenRenewMode),
83
83
  };
84
84
  });
85
- const internalFetch = (url, headers, numberRetry = 0) => __awaiter(void 0, void 0, void 0, function* () {
85
+ const internalFetch = (url, headers, numberRetry = 0, timeoutMs = 10000) => __awaiter(void 0, void 0, void 0, function* () {
86
86
  let response;
87
87
  try {
88
88
  const controller = new AbortController();
89
- setTimeout(() => controller.abort(), 10000);
89
+ setTimeout(() => controller.abort(), timeoutMs);
90
90
  response = yield fetch(url, Object.assign(Object.assign({}, headers), { signal: controller.signal }));
91
91
  }
92
92
  catch (e) {
93
93
  if (e.message === 'AbortError' ||
94
94
  e.message === 'Network request failed') {
95
95
  if (numberRetry <= 1) {
96
- return yield internalFetch(url, headers, numberRetry + 1);
96
+ return yield internalFetch(url, headers, numberRetry + 1, timeoutMs);
97
97
  }
98
98
  else {
99
99
  throw e;
@@ -143,7 +143,7 @@ function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRefresh = false,
143
143
  return __awaiter(this, void 0, void 0, function* () {
144
144
  const updateTokens = (tokens) => { oidc.tokens = tokens; };
145
145
  const { tokens, status } = yield oidc.synchroniseTokensAsync(refreshToken, 0, forceRefresh, extras, updateTokens);
146
- const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(oidc.configuration.service_worker_relative_url, oidc.configurationName);
146
+ const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(oidc.configuration.service_worker_relative_url, oidc.configurationName, oidc.configuration.redirect_uri);
147
147
  if (!serviceWorker) {
148
148
  const session = (0, initSession_1.initSession)(oidc.configurationName, oidc.configuration.redirect_uri, oidc.configuration.storage);
149
149
  yield session.setTokens(oidc.tokens);
@@ -466,7 +466,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
466
466
  issuer: authorityConfiguration.issuer,
467
467
  });
468
468
  }
469
- const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName);
469
+ const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName, this.configuration.redirect_uri);
470
470
  const storage = serviceWorker ? window.localStorage : null;
471
471
  return yield fetchFromIssuer(authority, (_a = this.configuration.authority_time_cache_wellknowurl_in_second) !== null && _a !== void 0 ? _a : 60 * 60, storage);
472
472
  });
@@ -492,7 +492,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
492
492
  try {
493
493
  const configuration = this.configuration;
494
494
  const oidcServerConfiguration = yield this.initAsync(configuration.authority, configuration.authority_configuration);
495
- serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, this.configurationName);
495
+ serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, this.configurationName, configuration.redirect_uri);
496
496
  if (serviceWorker) {
497
497
  const { tokens } = yield serviceWorker.initAsync(oidcServerConfiguration, 'tryKeepExistingSessionAsync', configuration);
498
498
  if (tokens) {
@@ -603,7 +603,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
603
603
  extraFinal.nonce = randomString(12);
604
604
  }
605
605
  const nonce = { nonce: extraFinal.nonce };
606
- const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, this.configurationName);
606
+ const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, this.configurationName, this.configuration.redirect_uri);
607
607
  const oidcServerConfiguration = yield this.initAsync(configuration.authority, configuration.authority_configuration);
608
608
  let storage;
609
609
  if (serviceWorker) {
@@ -679,13 +679,9 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
679
679
  }).catch((e) => __awaiter(this, void 0, void 0, function* () {
680
680
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
681
681
  for (const [key, oidc] of Object.entries(oidcDatabase)) {
682
- // if(oidc !== this) {
683
682
  // @ts-ignore
684
683
  yield oidc.logoutOtherTabAsync(this.configuration.client_id, idTokenPayload.sub);
685
- // }
686
684
  }
687
- // await this.destroyAsync();
688
- // this.publishEvent(eventNames.logout_from_another_tab, {message : "SessionMonitor"});
689
685
  }));
690
686
  };
691
687
  this.checkSessionIFrame = new checkSessionIFrame_1.CheckSessionIFrame(checkSessionCallback, clientId, checkSessionIFrameUri);
@@ -713,7 +709,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
713
709
  const parsedTokens = response.tokens;
714
710
  // @ts-ignore
715
711
  this.tokens = response.tokens;
716
- const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName);
712
+ const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName, this.configuration.redirect_uri);
717
713
  if (!serviceWorker) {
718
714
  const session = (0, initSession_1.initSession)(this.configurationName, this.configuration.redirect_uri, this.configuration.storage);
719
715
  session.setTokens(parsedTokens);
@@ -741,7 +737,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
741
737
  const oidcServerConfiguration = yield this.initAsync(authority, configuration.authority_configuration);
742
738
  const queryParams = (0, route_utils_1.getParseQueryStringFromLocation)(window.location.href);
743
739
  const sessionState = queryParams.session_state;
744
- const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, this.configurationName);
740
+ const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, this.configurationName, configuration.redirect_uri);
745
741
  let storage = null;
746
742
  let nonceData = null;
747
743
  if (serviceWorker) {
@@ -864,6 +860,10 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
864
860
  }
865
861
  synchroniseTokensAsync(refreshToken, index = 0, forceRefresh = false, extras = null, updateTokens) {
866
862
  return __awaiter(this, void 0, void 0, function* () {
863
+ while (!navigator.onLine && document.hidden) {
864
+ yield (0, initWorker_1.sleepAsync)(1000);
865
+ this.publishEvent(eventNames.refreshTokensAsync, { message: 'wait because navigator is offline and hidden' });
866
+ }
867
867
  let numberTryOnline = 6;
868
868
  while (!navigator.onLine && numberTryOnline > 0) {
869
869
  yield (0, initWorker_1.sleepAsync)(1000);
@@ -908,67 +908,79 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
908
908
  this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token' });
909
909
  return { tokens: null, status: 'SESSION_LOST' };
910
910
  }
911
- const { status, tokens, nonce } = yield this.syncTokensInfoAsync(configuration, this.configurationName, this.tokens, forceRefresh);
912
- switch (status) {
913
- case 'SESSION_LOST':
914
- updateTokens(null);
915
- this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token session lost' });
916
- return { tokens: null, status: 'SESSION_LOST' };
917
- case 'NOT_CONNECTED':
918
- updateTokens(null);
919
- return { tokens: null, status: null };
920
- case 'TOKENS_VALID':
921
- updateTokens(tokens);
922
- return { tokens, status: 'LOGGED_IN' };
923
- case 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID':
924
- updateTokens(tokens);
925
- this.publishEvent(Oidc.eventNames.token_renewed, { reason: 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID' });
926
- return { tokens, status: 'LOGGED_IN' };
927
- case 'LOGOUT_FROM_ANOTHER_TAB':
928
- updateTokens(null);
929
- this.publishEvent(eventNames.logout_from_another_tab, { status: 'session syncTokensAsync' });
930
- return { tokens: null, status: 'LOGGED_OUT' };
931
- case 'REQUIRE_SYNC_TOKENS':
932
- this.publishEvent(eventNames.refreshTokensAsync_begin, { refreshToken, status, tryNumber: index });
933
- return yield localsilentLoginAsync();
934
- default: {
935
- if (!refreshToken) {
911
+ try {
912
+ const { status, tokens, nonce } = yield this.syncTokensInfoAsync(configuration, this.configurationName, this.tokens, forceRefresh);
913
+ switch (status) {
914
+ case 'SESSION_LOST':
915
+ updateTokens(null);
916
+ this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token session lost' });
917
+ return { tokens: null, status: 'SESSION_LOST' };
918
+ case 'NOT_CONNECTED':
919
+ updateTokens(null);
920
+ return { tokens: null, status: null };
921
+ case 'TOKENS_VALID':
922
+ updateTokens(tokens);
923
+ return { tokens, status: 'LOGGED_IN' };
924
+ case 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID':
925
+ updateTokens(tokens);
926
+ this.publishEvent(Oidc.eventNames.token_renewed, { reason: 'TOKEN_UPDATED_BY_ANOTHER_TAB_TOKENS_VALID' });
927
+ return { tokens, status: 'LOGGED_IN' };
928
+ case 'LOGOUT_FROM_ANOTHER_TAB':
929
+ updateTokens(null);
930
+ this.publishEvent(eventNames.logout_from_another_tab, { status: 'session syncTokensAsync' });
931
+ return { tokens: null, status: 'LOGGED_OUT' };
932
+ case 'REQUIRE_SYNC_TOKENS':
933
+ this.publishEvent(eventNames.refreshTokensAsync_begin, { refreshToken, status, tryNumber: index });
936
934
  return yield localsilentLoginAsync();
937
- }
938
- this.publishEvent(eventNames.refreshTokensAsync_begin, { refreshToken, status, tryNumber: index });
939
- const clientId = configuration.client_id;
940
- const redirectUri = configuration.redirect_uri;
941
- const authority = configuration.authority;
942
- const tokenExtras = configuration.token_request_extras ? configuration.token_request_extras : {};
943
- const finalExtras = Object.assign(Object.assign({}, tokenExtras), extras);
944
- const details = {
945
- client_id: clientId,
946
- redirect_uri: redirectUri,
947
- grant_type: appauth_1.GRANT_TYPE_REFRESH_TOKEN,
948
- refresh_token: tokens.refreshToken,
949
- };
950
- const oidcServerConfiguration = yield this.initAsync(authority, configuration.authority_configuration);
951
- const tokenResponse = yield performTokenRequestAsync(oidcServerConfiguration.tokenEndpoint, details, finalExtras, tokens, configuration.token_renew_mode);
952
- if (tokenResponse.success) {
953
- if (!(0, parseTokens_1.isTokensOidcValid)(tokenResponse.data, nonce.nonce, oidcServerConfiguration)) {
954
- updateTokens(null);
955
- this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token return not valid tokens' });
956
- return { tokens: null, status: 'SESSION_LOST' };
935
+ default: {
936
+ this.publishEvent(eventNames.refreshTokensAsync_begin, { refreshToken, status, tryNumber: index });
937
+ if (!refreshToken) {
938
+ return yield localsilentLoginAsync();
957
939
  }
958
- updateTokens(tokenResponse.data);
959
- this.publishEvent(eventNames.refreshTokensAsync_end, { success: tokenResponse.success });
960
- this.publishEvent(Oidc.eventNames.token_renewed, { reason: 'REFRESH_TOKEN' });
961
- return { tokens: tokenResponse.data, status: 'LOGGED_IN' };
962
- }
963
- else {
964
- this.publishEvent(eventNames.refreshTokensAsync_silent_error, {
965
- message: 'bad request',
966
- tokenResponse,
940
+ const clientId = configuration.client_id;
941
+ const redirectUri = configuration.redirect_uri;
942
+ const authority = configuration.authority;
943
+ const tokenExtras = configuration.token_request_extras ? configuration.token_request_extras : {};
944
+ const finalExtras = Object.assign(Object.assign({}, tokenExtras), extras);
945
+ const localFunctionAsync = () => __awaiter(this, void 0, void 0, function* () {
946
+ const details = {
947
+ client_id: clientId,
948
+ redirect_uri: redirectUri,
949
+ grant_type: appauth_1.GRANT_TYPE_REFRESH_TOKEN,
950
+ refresh_token: tokens.refreshToken,
951
+ };
952
+ const oidcServerConfiguration = yield this.initAsync(authority, configuration.authority_configuration);
953
+ const timeoutMs = document.hidden ? 10000 : 30000 * 10;
954
+ const tokenResponse = yield performTokenRequestAsync(oidcServerConfiguration.tokenEndpoint, details, finalExtras, tokens, configuration.token_renew_mode, timeoutMs);
955
+ if (tokenResponse.success) {
956
+ if (!(0, parseTokens_1.isTokensOidcValid)(tokenResponse.data, nonce.nonce, oidcServerConfiguration)) {
957
+ updateTokens(null);
958
+ this.publishEvent(eventNames.refreshTokensAsync_error, { message: 'refresh token return not valid tokens' });
959
+ return { tokens: null, status: 'SESSION_LOST' };
960
+ }
961
+ updateTokens(tokenResponse.data);
962
+ this.publishEvent(eventNames.refreshTokensAsync_end, { success: tokenResponse.success });
963
+ this.publishEvent(Oidc.eventNames.token_renewed, { reason: 'REFRESH_TOKEN' });
964
+ return { tokens: tokenResponse.data, status: 'LOGGED_IN' };
965
+ }
966
+ else {
967
+ this.publishEvent(eventNames.refreshTokensAsync_silent_error, {
968
+ message: 'bad request',
969
+ tokenResponse,
970
+ });
971
+ return yield this.synchroniseTokensAsync(refreshToken, nextIndex, forceRefresh, extras, updateTokens);
972
+ }
967
973
  });
968
- return yield this.synchroniseTokensAsync(null, nextIndex, forceRefresh, extras, updateTokens);
974
+ // const promise =
975
+ return yield localFunctionAsync(); // executeWithTimeoutAsync(promise, 30000);
969
976
  }
970
977
  }
971
978
  }
979
+ catch (exception) {
980
+ console.error(exception);
981
+ this.publishEvent(eventNames.refreshTokensAsync_silent_error, { message: 'exception', exception: exception.message });
982
+ return this.synchroniseTokensAsync(refreshToken, nextIndex, forceRefresh, extras, updateTokens);
983
+ }
972
984
  });
973
985
  }
974
986
  syncTokensInfoAsync(configuration, configurationName, currentTokens, forceRefresh = false) {
@@ -982,7 +994,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
982
994
  }
983
995
  let nonce = nullNonce;
984
996
  const oidcServerConfiguration = yield this.initAsync(configuration.authority, configuration.authority_configuration);
985
- const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, configurationName);
997
+ const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(configuration.service_worker_relative_url, configurationName, configuration.redirect_uri);
986
998
  if (serviceWorker) {
987
999
  const { status, tokens } = yield serviceWorker.initAsync(oidcServerConfiguration, 'syncTokensAsync', configuration);
988
1000
  if (status === 'LOGGED_OUT') {
@@ -1064,7 +1076,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
1064
1076
  if (this.checkSessionIFrame) {
1065
1077
  this.checkSessionIFrame.stop();
1066
1078
  }
1067
- const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName);
1079
+ const serviceWorker = yield (0, initWorker_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName, this.configuration.redirect_uri);
1068
1080
  if (!serviceWorker) {
1069
1081
  const session = (0, initSession_1.initSession)(this.configurationName, this.configuration.redirect_uri, this.configuration.storage);
1070
1082
  yield session.clearAsync(status);
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/oidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/oidc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axa-fr/react-oidc",
3
- "version": "6.10.15",
3
+ "version": "6.10.17",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "jsnext:main": "dist/index.js",
@@ -14,13 +14,6 @@ const handleInstall = (event) => {
14
14
  const handleActivate = (event) => {
15
15
  console.log('[OidcServiceWorker] service worker activated ' + id);
16
16
  event.waitUntil(self.clients.claim());
17
- /* self.registration.unregister()
18
- .then(function() {
19
- return self.clients.matchAll();
20
- })
21
- .then(function(clients) {
22
- clients.forEach(client => client.navigate(client.url))
23
- }); */
24
17
  };
25
18
 
26
19
  let currentLoginCallbackConfigurationName = null;
@@ -94,7 +87,7 @@ const isTokensOidcValid = (tokens, nonce, oidcServerConfiguration) => {
94
87
  return false;
95
88
  }
96
89
  // 11: If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked to verify that it is the same value as the one that was sent in the Authentication Request. The Client SHOULD check the nonce value for replay attacks. The precise method for detecting replay attacks is Client specific.
97
- if (idTokenPayload.nonce && idTokenPayload.nonce !== nonce) {
90
+ if (idTokenPayload.nonce && nonce != null && idTokenPayload.nonce !== nonce) {
98
91
  return false;
99
92
  }
100
93
  }
@@ -131,7 +124,7 @@ function hideTokens(currentDatabaseElement) {
131
124
  if (tokens.id_token) {
132
125
  _idTokenPayload = extractTokenPayload(tokens.id_token);
133
126
  tokens.idTokenPayload = { ..._idTokenPayload };
134
- if (_idTokenPayload.nonce) {
127
+ if (_idTokenPayload.nonce && currentDatabaseElement.nonce != null) {
135
128
  const keyNonce = NONCE_TOKEN + '_' + currentDatabaseElement.configurationName;
136
129
  _idTokenPayload.nonce = keyNonce;
137
130
  }
@@ -156,8 +149,8 @@ function hideTokens(currentDatabaseElement) {
156
149
  secureTokens.expiresAt = expiresAt;
157
150
 
158
151
  tokens.expiresAt = expiresAt;
159
-
160
- if (!isTokensOidcValid(tokens, currentDatabaseElement.nonce.nonce, currentDatabaseElement.oidcServerConfiguration)) {
152
+ const nonce = currentDatabaseElement.nonce ? currentDatabaseElement.nonce.nonce : null;
153
+ if (!isTokensOidcValid(tokens, nonce, currentDatabaseElement.oidcServerConfiguration)) {
161
154
  throw Error('Tokens are not OpenID valid');
162
155
  }
163
156
 
@@ -211,10 +204,10 @@ const getCurrentDatabaseDomain = (database, url) => {
211
204
  }
212
205
 
213
206
  const domainsToSendTokens = oidcServerConfiguration.userInfoEndpoint
214
- ? [
215
- oidcServerConfiguration.userInfoEndpoint, ...trustedDomains[key],
216
- ]
217
- : [...trustedDomains[key]];
207
+ ? [
208
+ oidcServerConfiguration.userInfoEndpoint, ...trustedDomains[key],
209
+ ]
210
+ : [...trustedDomains[key]];
218
211
 
219
212
  let hasToSendToken = false;
220
213
  if (domainsToSendTokens.find((f) => f === acceptAnyDomainToken)) {
@@ -429,9 +422,9 @@ addEventListener('message', event => {
429
422
  port.postMessage({ configurationName });
430
423
  return;
431
424
  case 'init':
432
- {
425
+ {
433
426
  const oidcServerConfiguration = data.data.oidcServerConfiguration;
434
- const domains = trustedDomains[configurationName];
427
+ const domains = trustedDomains[configurationName];
435
428
  if (!domains.find(f => f === acceptAnyDomainToken)) {
436
429
  checkDomain(domains, oidcServerConfiguration.tokenEndpoint);
437
430
  checkDomain(domains, oidcServerConfiguration.revocationEndpoint);
@@ -452,7 +445,7 @@ addEventListener('message', event => {
452
445
  tokens: null,
453
446
  status: currentDatabase.status,
454
447
  configurationName,
455
- });
448
+ });
456
449
  } else {
457
450
  const tokens = {
458
451
  ...currentDatabase.tokens,
@@ -461,7 +454,7 @@ addEventListener('message', event => {
461
454
  if (tokens.refresh_token) {
462
455
  tokens.refresh_token = REFRESH_TOKEN + '_' + configurationName;
463
456
  }
464
- if (tokens.idTokenPayload && tokens.idTokenPayload.nonce) {
457
+ if (tokens.idTokenPayload && tokens.idTokenPayload.nonce && currentDatabase.nonce != null) {
465
458
  tokens.idTokenPayload.nonce = NONCE_TOKEN + '_' + configurationName;
466
459
  }
467
460
  port.postMessage({
@@ -478,11 +471,11 @@ addEventListener('message', event => {
478
471
  port.postMessage({ configurationName });
479
472
  return;
480
473
  case 'getSessionState':
481
- {
482
- const sessionState = currentDatabase.sessionState;
483
- port.postMessage({ configurationName, sessionState });
484
- return;
485
- }
474
+ {
475
+ const sessionState = currentDatabase.sessionState;
476
+ port.postMessage({ configurationName, sessionState });
477
+ return;
478
+ }
486
479
  case 'setNonce':
487
480
  currentDatabase.nonce = data.data.nonce;
488
481
  port.postMessage({ configurationName });
@@ -40,8 +40,7 @@ export const initSession = (configurationName, redirectUri, storage = sessionSto
40
40
 
41
41
  const getNonceAsync = async () => {
42
42
  // @ts-ignore
43
- const result = { nonce: localStorage[`oidc.nonce.${configurationName}:${redirectUri}`] };
44
- return result;
43
+ return { nonce: localStorage[`oidc.nonce.${configurationName}:${redirectUri}`] };
45
44
  };
46
45
 
47
46
  const getTokens = () => {