oidc-spa 5.0.1 → 5.1.0
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.
- package/oidc.d.ts +1 -0
- package/oidc.js +194 -95
- package/oidc.js.map +1 -1
- package/package.json +1 -1
- package/src/oidc.ts +179 -19
package/oidc.d.ts
CHANGED
|
@@ -149,6 +149,7 @@ export type ParamsOfCreateOidc<DecodedIdToken extends Record<string, unknown> =
|
|
|
149
149
|
__unsafe_ssoSessionIdleSeconds?: number;
|
|
150
150
|
autoLogoutParams?: Parameters<Oidc.LoggedIn<any>["logout"]>[0];
|
|
151
151
|
isAuthGloballyRequired?: IsAuthGloballyRequired;
|
|
152
|
+
doEnableDebugLogs?: boolean;
|
|
152
153
|
};
|
|
153
154
|
/** @see: https://docs.oidc-spa.dev/v/v5/documentation/usage */
|
|
154
155
|
export declare function createOidc<DecodedIdToken extends Record<string, unknown> = Record<string, unknown>, IsAuthGloballyRequired extends boolean = false>(params: ParamsOfCreateOidc<DecodedIdToken, IsAuthGloballyRequired>): Promise<IsAuthGloballyRequired extends true ? Oidc.LoggedIn<DecodedIdToken> : Oidc<DecodedIdToken>>;
|
package/oidc.js
CHANGED
|
@@ -116,12 +116,31 @@ var URL_real = window.URL;
|
|
|
116
116
|
/** @see: https://docs.oidc-spa.dev/v/v5/documentation/usage */
|
|
117
117
|
function createOidc(params) {
|
|
118
118
|
return __awaiter(this, void 0, void 0, function () {
|
|
119
|
-
var issuerUri, clientId, clientSecret, _a, scopes, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _b, autoLogoutParams, _c, isAuthGloballyRequired, postLoginRedirectUrl, getExtraQueryParams, publicUrl, configHash, prOidc, dOidc, silentSso, IS_SILENT_SSO_RESERVED_QUERY_PARAM_NAME, CONFIG_HASH_RESERVED_QUERY_PARAM_NAME, result, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, hasLoginBeenCalled, RESULT_OMIT_RESERVED_QUERY_PARAM_NAME, EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME, loginOrGoToAuthServer, resultOfLoginProcess, common, error, initializationError, oidc_1, oidc_2, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, assertSessionStorageNotCleared, oidc, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1;
|
|
119
|
+
var issuerUri, clientId, clientSecret, _a, scopes, transformUrlBeforeRedirect, extraQueryParamsOrGetter, publicUrl_params, decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds, _b, autoLogoutParams, _c, isAuthGloballyRequired, postLoginRedirectUrl, _d, doEnableDebugLogs, log, getExtraQueryParams, publicUrl, configHash, prOidc, dOidc, silentSso, IS_SILENT_SSO_RESERVED_QUERY_PARAM_NAME, CONFIG_HASH_RESERVED_QUERY_PARAM_NAME, result, oidcClientTsUserManager, lastPublicRoute, startTrackingLastPublicRoute, hasLoginBeenCalled, RESULT_OMIT_RESERVED_QUERY_PARAM_NAME, EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME, loginOrGoToAuthServer, resultOfLoginProcess, common, error, initializationError, oidc_1, oidc_2, currentTokens, autoLogoutCountdownTickCallbacks, onTokenChanges, assertSessionStorageNotCleared, oidc, getMsBeforeExpiration_1, startCountdown_2, stopCountdown_1;
|
|
120
120
|
var _this = this;
|
|
121
|
-
return __generator(this, function (
|
|
122
|
-
switch (
|
|
121
|
+
return __generator(this, function (_e) {
|
|
122
|
+
switch (_e.label) {
|
|
123
123
|
case 0:
|
|
124
|
-
issuerUri = params.issuerUri, clientId = params.clientId, clientSecret = params.clientSecret, _a = params.scopes, scopes = _a === void 0 ? ["profile"] : _a, transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, extraQueryParamsOrGetter = params.extraQueryParams, publicUrl_params = params.publicUrl, decodedIdTokenSchema = params.decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds = params.__unsafe_ssoSessionIdleSeconds, _b = params.autoLogoutParams, autoLogoutParams = _b === void 0 ? { "redirectTo": "current page" } : _b, _c = params.isAuthGloballyRequired, isAuthGloballyRequired = _c === void 0 ? false : _c, postLoginRedirectUrl = params.postLoginRedirectUrl;
|
|
124
|
+
issuerUri = params.issuerUri, clientId = params.clientId, clientSecret = params.clientSecret, _a = params.scopes, scopes = _a === void 0 ? ["profile"] : _a, transformUrlBeforeRedirect = params.transformUrlBeforeRedirect, extraQueryParamsOrGetter = params.extraQueryParams, publicUrl_params = params.publicUrl, decodedIdTokenSchema = params.decodedIdTokenSchema, __unsafe_ssoSessionIdleSeconds = params.__unsafe_ssoSessionIdleSeconds, _b = params.autoLogoutParams, autoLogoutParams = _b === void 0 ? { "redirectTo": "current page" } : _b, _c = params.isAuthGloballyRequired, isAuthGloballyRequired = _c === void 0 ? false : _c, postLoginRedirectUrl = params.postLoginRedirectUrl, _d = params.doEnableDebugLogs, doEnableDebugLogs = _d === void 0 ? false : _d;
|
|
125
|
+
log = (function () {
|
|
126
|
+
if (!doEnableDebugLogs) {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
return (0, tsafe_1.id)(function () {
|
|
130
|
+
var _a = [];
|
|
131
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
132
|
+
_a[_i] = arguments[_i];
|
|
133
|
+
}
|
|
134
|
+
var _b = __read(_a), first = _b[0], rest = _b.slice(1);
|
|
135
|
+
var label = "oidc-spa";
|
|
136
|
+
if (typeof first === "string") {
|
|
137
|
+
console.log.apply(console, __spreadArray([], __read(__spreadArray(["".concat(label, ": ").concat(first)], __read(rest), false)), false));
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
console.log.apply(console, __spreadArray([], __read(__spreadArray(["".concat(label, ":"), first], __read(rest), false)), false));
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
})();
|
|
125
144
|
getExtraQueryParams = (function () {
|
|
126
145
|
if (typeof extraQueryParamsOrGetter === "function") {
|
|
127
146
|
return extraQueryParamsOrGetter;
|
|
@@ -140,11 +159,13 @@ function createOidc(params) {
|
|
|
140
159
|
: "".concat(window.location.origin).concat(publicUrl_params)).replace(/\/$/, "");
|
|
141
160
|
})();
|
|
142
161
|
configHash = (0, fnv1aHashToHex_1.fnv1aHashToHex)("".concat(issuerUri, " ").concat(clientId, " ").concat(clientSecret !== null && clientSecret !== void 0 ? clientSecret : "", " ").concat(scopes.join(" ")));
|
|
162
|
+
log === null || log === void 0 ? void 0 : log("Calling createOidc", { params: params, publicUrl: publicUrl, configHash: configHash });
|
|
143
163
|
use_previous_instance: {
|
|
144
164
|
prOidc = prOidcByConfigHash.get(configHash);
|
|
145
165
|
if (prOidc === undefined) {
|
|
146
166
|
break use_previous_instance;
|
|
147
167
|
}
|
|
168
|
+
log === null || log === void 0 ? void 0 : log("Using previous instance of oidc-spa");
|
|
148
169
|
console.warn([
|
|
149
170
|
"oidc-spa has been instantiated more than once with the same configuration.",
|
|
150
171
|
"If you are in development mode with hot module replacement this is expected you can ignore this warning.",
|
|
@@ -163,6 +184,7 @@ function createOidc(params) {
|
|
|
163
184
|
"hasDedicatedHtmlFile": true,
|
|
164
185
|
"redirectUri": "".concat(publicUrl, "/silent-sso.htm")
|
|
165
186
|
};
|
|
187
|
+
log === null || log === void 0 ? void 0 : log("Wether we use a dedicated silent-sso.htm file or not", silentSso);
|
|
166
188
|
IS_SILENT_SSO_RESERVED_QUERY_PARAM_NAME = "oidc-spa_silent_sso";
|
|
167
189
|
CONFIG_HASH_RESERVED_QUERY_PARAM_NAME = "oidc-spa_config_hash";
|
|
168
190
|
if (!(0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
@@ -181,6 +203,10 @@ function createOidc(params) {
|
|
|
181
203
|
}
|
|
182
204
|
}
|
|
183
205
|
if (!silentSso.hasDedicatedHtmlFile) return [3 /*break*/, 2];
|
|
206
|
+
log === null || log === void 0 ? void 0 : log([
|
|
207
|
+
"User forgot to create the silent-sso.htm file or the web server is not serving it correctly",
|
|
208
|
+
"suspending forever"
|
|
209
|
+
].join(" "));
|
|
184
210
|
// Here the user forget to create the silent-sso.htm file or or the web server is not serving it correctly
|
|
185
211
|
// we shouldn't fall back to the SPA page.
|
|
186
212
|
// In this case we want to let the timeout of the parent expire to provide the correct error message.
|
|
@@ -189,14 +215,15 @@ function createOidc(params) {
|
|
|
189
215
|
// Here the user forget to create the silent-sso.htm file or or the web server is not serving it correctly
|
|
190
216
|
// we shouldn't fall back to the SPA page.
|
|
191
217
|
// In this case we want to let the timeout of the parent expire to provide the correct error message.
|
|
192
|
-
|
|
193
|
-
|
|
218
|
+
_e.sent();
|
|
219
|
+
_e.label = 2;
|
|
194
220
|
case 2:
|
|
221
|
+
log === null || log === void 0 ? void 0 : log("Silent SSO dedicated html file is not used, polyfilling the behavior by sending a message to the parent");
|
|
195
222
|
parent.postMessage(location.href, location.origin);
|
|
196
223
|
return [4 /*yield*/, new Promise(function () { })];
|
|
197
224
|
case 3:
|
|
198
|
-
|
|
199
|
-
|
|
225
|
+
_e.sent();
|
|
226
|
+
_e.label = 4;
|
|
200
227
|
case 4:
|
|
201
228
|
oidcClientTsUserManager = new oidc_client_ts_and_jwt_decode_1.UserManager({
|
|
202
229
|
"authority": issuerUri,
|
|
@@ -237,16 +264,18 @@ function createOidc(params) {
|
|
|
237
264
|
RESULT_OMIT_RESERVED_QUERY_PARAM_NAME = "oidc-spa_result_omit";
|
|
238
265
|
EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME = "oidc-spa_intent";
|
|
239
266
|
loginOrGoToAuthServer = function (params) { return __awaiter(_this, void 0, void 0, function () {
|
|
240
|
-
var extraQueryParams_fromLoginFn, redirectUrl, transformUrlBeforeRedirect_fromLoginFn, rest, callback_1, redirect_uri, URL_1;
|
|
267
|
+
var extraQueryParams_fromLoginFn, redirectUrl, transformUrlBeforeRedirect_fromLoginFn, rest, callback_1, redirect_uri, URL_1, redirectMethod;
|
|
241
268
|
return __generator(this, function (_a) {
|
|
242
269
|
switch (_a.label) {
|
|
243
270
|
case 0:
|
|
244
271
|
extraQueryParams_fromLoginFn = params.extraQueryParams, redirectUrl = params.redirectUrl, transformUrlBeforeRedirect_fromLoginFn = params.transformUrlBeforeRedirect, rest = __rest(params, ["extraQueryParams", "redirectUrl", "transformUrlBeforeRedirect"]);
|
|
272
|
+
log === null || log === void 0 ? void 0 : log("Calling loginOrGoToAuthServer", { params: params });
|
|
245
273
|
login_only: {
|
|
246
274
|
if (rest.action !== "login") {
|
|
247
275
|
break login_only;
|
|
248
276
|
}
|
|
249
277
|
if (hasLoginBeenCalled) {
|
|
278
|
+
log === null || log === void 0 ? void 0 : log("login() has already been called, ignoring the call");
|
|
250
279
|
return [2 /*return*/, new Promise(function () { })];
|
|
251
280
|
}
|
|
252
281
|
hasLoginBeenCalled = true;
|
|
@@ -261,19 +290,24 @@ function createOidc(params) {
|
|
|
261
290
|
callback_1 = function () {
|
|
262
291
|
if (document.visibilityState === "visible") {
|
|
263
292
|
document.removeEventListener("visibilitychange", callback_1);
|
|
293
|
+
log === null || log === void 0 ? void 0 : log("We came back from the login pages and the state of the app has been restored");
|
|
264
294
|
if (rest.doesCurrentHrefRequiresAuth) {
|
|
265
295
|
if (lastPublicRoute !== undefined) {
|
|
296
|
+
log === null || log === void 0 ? void 0 : log("Loading last public route: ".concat(lastPublicRoute));
|
|
266
297
|
window.location.href = lastPublicRoute;
|
|
267
298
|
}
|
|
268
299
|
else {
|
|
300
|
+
log === null || log === void 0 ? void 0 : log("We don't know the last public route, navigating back in history");
|
|
269
301
|
window.history.back();
|
|
270
302
|
}
|
|
271
303
|
}
|
|
272
304
|
else {
|
|
305
|
+
log === null || log === void 0 ? void 0 : log("The current page doesn't require auth, we don't need to reload");
|
|
273
306
|
hasLoginBeenCalled = false;
|
|
274
307
|
}
|
|
275
308
|
}
|
|
276
309
|
};
|
|
310
|
+
log === null || log === void 0 ? void 0 : log("Start listening to visibility change event");
|
|
277
311
|
document.addEventListener("visibilitychange", callback_1);
|
|
278
312
|
}
|
|
279
313
|
redirect_uri = (function () {
|
|
@@ -335,6 +369,7 @@ function createOidc(params) {
|
|
|
335
369
|
}
|
|
336
370
|
return url;
|
|
337
371
|
})();
|
|
372
|
+
log === null || log === void 0 ? void 0 : log("redirect_uri: ".concat(redirect_uri));
|
|
338
373
|
//NOTE: We know there is a extraQueryParameter option but it doesn't allow
|
|
339
374
|
// to control the encoding so we have to highjack global URL Class that is
|
|
340
375
|
// used internally by oidc-client-ts. It's save to do so since this is the
|
|
@@ -405,19 +440,18 @@ function createOidc(params) {
|
|
|
405
440
|
};
|
|
406
441
|
Object.defineProperty(window, "URL", { "value": URL_1 });
|
|
407
442
|
}
|
|
443
|
+
redirectMethod = (function () {
|
|
444
|
+
switch (rest.action) {
|
|
445
|
+
case "login":
|
|
446
|
+
return rest.doesCurrentHrefRequiresAuth ? "replace" : "assign";
|
|
447
|
+
case "go to auth server":
|
|
448
|
+
return "assign";
|
|
449
|
+
}
|
|
450
|
+
})();
|
|
451
|
+
log === null || log === void 0 ? void 0 : log("redirectMethod: ".concat(redirectMethod));
|
|
408
452
|
return [4 /*yield*/, oidcClientTsUserManager.signinRedirect({
|
|
409
453
|
redirect_uri: redirect_uri,
|
|
410
|
-
|
|
411
|
-
// This is what happens when the user gave up the login process.
|
|
412
|
-
// We want to that to redirect to the last public page.
|
|
413
|
-
"redirectMethod": (function () {
|
|
414
|
-
switch (rest.action) {
|
|
415
|
-
case "login":
|
|
416
|
-
return rest.doesCurrentHrefRequiresAuth ? "replace" : "assign";
|
|
417
|
-
case "go to auth server":
|
|
418
|
-
return "assign";
|
|
419
|
-
}
|
|
420
|
-
})()
|
|
454
|
+
redirectMethod: redirectMethod
|
|
421
455
|
})];
|
|
422
456
|
case 1:
|
|
423
457
|
_a.sent();
|
|
@@ -427,42 +461,47 @@ function createOidc(params) {
|
|
|
427
461
|
}); };
|
|
428
462
|
return [4 /*yield*/, (function getUser() {
|
|
429
463
|
return __awaiter(this, void 0, void 0, function () {
|
|
430
|
-
var
|
|
464
|
+
var url_2, queryParameterNames_toCleanFromHref_1, name_3, result, loginSuccessUrl, missingMandatoryParams, PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1, PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1, name_4, result, result, extraQueryParams_backFromAuthServer, name_5, result, queryParamsNamesToOmit_backFromAuthServer, name_6, result, result_backFromAuthServer, values, _a, _b, _c, name_7, value, result, count, queryParameterNames_stillOnHref, oidcClientTsUser, error_1, oidcClientTsUser, error_2, dLoginSuccessUrl_1, timeoutDelayMs_1, timeout_1, listener_1, loginSuccessUrl, oidcClientTsUser, error_3;
|
|
431
465
|
var e_2, _d, e_3, _e;
|
|
432
466
|
var _this = this;
|
|
433
467
|
return __generator(this, function (_f) {
|
|
434
468
|
switch (_f.label) {
|
|
435
469
|
case 0:
|
|
436
|
-
|
|
470
|
+
url_2 = window.location.href;
|
|
471
|
+
queryParameterNames_toCleanFromHref_1 = new Set();
|
|
437
472
|
{
|
|
473
|
+
name_3 = CONFIG_HASH_RESERVED_QUERY_PARAM_NAME;
|
|
474
|
+
queryParameterNames_toCleanFromHref_1.add(name_3);
|
|
438
475
|
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
439
|
-
|
|
440
|
-
url:
|
|
476
|
+
name: name_3,
|
|
477
|
+
url: url_2
|
|
441
478
|
});
|
|
442
479
|
if (!result.wasPresent || result.value !== configHash) {
|
|
443
|
-
return [3 /*break*/,
|
|
480
|
+
return [3 /*break*/, 8];
|
|
444
481
|
}
|
|
445
|
-
|
|
482
|
+
url_2 = result.newUrl;
|
|
446
483
|
}
|
|
484
|
+
log === null || log === void 0 ? void 0 : log("Back from the auth server, reading the query params to initialize the auth");
|
|
447
485
|
loginSuccessUrl = "https://dummy.com";
|
|
448
486
|
missingMandatoryParams = [];
|
|
449
487
|
try {
|
|
450
488
|
for (PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1 = __values(PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN), PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1.next(); !PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1.done; PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1.next()) {
|
|
451
|
-
|
|
452
|
-
|
|
489
|
+
name_4 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_1_1.value;
|
|
490
|
+
queryParameterNames_toCleanFromHref_1.add(name_4);
|
|
491
|
+
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name: name_4, url: url_2 });
|
|
453
492
|
if (!result.wasPresent) {
|
|
454
|
-
if (
|
|
493
|
+
if (name_4 === "iss") {
|
|
455
494
|
continue;
|
|
456
495
|
}
|
|
457
|
-
missingMandatoryParams.push(
|
|
496
|
+
missingMandatoryParams.push(name_4);
|
|
458
497
|
continue;
|
|
459
498
|
}
|
|
460
499
|
loginSuccessUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
|
|
461
500
|
"url": loginSuccessUrl,
|
|
462
|
-
"name":
|
|
501
|
+
"name": name_4,
|
|
463
502
|
"value": result.value
|
|
464
503
|
}).newUrl;
|
|
465
|
-
|
|
504
|
+
url_2 = result.newUrl;
|
|
466
505
|
}
|
|
467
506
|
}
|
|
468
507
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
@@ -473,7 +512,7 @@ function createOidc(params) {
|
|
|
473
512
|
finally { if (e_2) throw e_2.error; }
|
|
474
513
|
}
|
|
475
514
|
{
|
|
476
|
-
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ "name": "error", url:
|
|
515
|
+
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ "name": "error", url: url_2 });
|
|
477
516
|
if (result.wasPresent) {
|
|
478
517
|
throw new Error([
|
|
479
518
|
"The OIDC server responded with an error passed as query parameter after the login process",
|
|
@@ -483,40 +522,45 @@ function createOidc(params) {
|
|
|
483
522
|
}
|
|
484
523
|
extraQueryParams_backFromAuthServer = void 0;
|
|
485
524
|
{
|
|
525
|
+
name_5 = EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME;
|
|
526
|
+
queryParameterNames_toCleanFromHref_1.add(name_5);
|
|
486
527
|
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
487
|
-
|
|
488
|
-
url:
|
|
528
|
+
name: name_5,
|
|
529
|
+
url: url_2
|
|
489
530
|
});
|
|
490
531
|
(0, tsafe_2.assert)(result.wasPresent);
|
|
491
|
-
|
|
532
|
+
url_2 = result.newUrl;
|
|
492
533
|
extraQueryParams_backFromAuthServer = JSON.parse((0, base64_1.decodeBase64)(result.value));
|
|
493
534
|
}
|
|
494
535
|
queryParamsNamesToOmit_backFromAuthServer = void 0;
|
|
495
536
|
{
|
|
537
|
+
name_6 = RESULT_OMIT_RESERVED_QUERY_PARAM_NAME;
|
|
538
|
+
queryParameterNames_toCleanFromHref_1.add(name_6);
|
|
496
539
|
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
497
|
-
|
|
498
|
-
url:
|
|
540
|
+
name: name_6,
|
|
541
|
+
url: url_2
|
|
499
542
|
});
|
|
500
543
|
(0, tsafe_2.assert)(result.wasPresent);
|
|
501
|
-
|
|
544
|
+
url_2 = result.newUrl;
|
|
502
545
|
queryParamsNamesToOmit_backFromAuthServer = JSON.parse((0, base64_1.decodeBase64)(result.value));
|
|
503
546
|
}
|
|
504
547
|
result_backFromAuthServer = {};
|
|
505
548
|
{
|
|
506
|
-
values = (0, urlQueryParams_1.retrieveAllQueryParamFromUrl)({ url:
|
|
549
|
+
values = (0, urlQueryParams_1.retrieveAllQueryParamFromUrl)({ url: url_2 }).values;
|
|
507
550
|
try {
|
|
508
551
|
for (_a = __values(Object.entries(values)), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
509
|
-
_c = __read(_b.value, 2),
|
|
510
|
-
if (queryParamsNamesToOmit_backFromAuthServer.includes(
|
|
552
|
+
_c = __read(_b.value, 2), name_7 = _c[0], value = _c[1];
|
|
553
|
+
if (queryParamsNamesToOmit_backFromAuthServer.includes(name_7)) {
|
|
511
554
|
continue;
|
|
512
555
|
}
|
|
513
|
-
|
|
556
|
+
queryParameterNames_toCleanFromHref_1.add(name_7);
|
|
557
|
+
result_backFromAuthServer[name_7] = value;
|
|
514
558
|
result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
515
|
-
name:
|
|
516
|
-
url:
|
|
559
|
+
name: name_7,
|
|
560
|
+
url: url_2
|
|
517
561
|
});
|
|
518
562
|
(0, tsafe_2.assert)(result.wasPresent);
|
|
519
|
-
|
|
563
|
+
url_2 = result.newUrl;
|
|
520
564
|
}
|
|
521
565
|
}
|
|
522
566
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
@@ -527,7 +571,42 @@ function createOidc(params) {
|
|
|
527
571
|
finally { if (e_3) throw e_3.error; }
|
|
528
572
|
}
|
|
529
573
|
}
|
|
530
|
-
|
|
574
|
+
log === null || log === void 0 ? void 0 : log("Cleaning the url from the OIDC query parameters");
|
|
575
|
+
count = 0;
|
|
576
|
+
_f.label = 1;
|
|
577
|
+
case 1:
|
|
578
|
+
if (!true) return [3 /*break*/, 3];
|
|
579
|
+
window.history.pushState(null, "", url_2);
|
|
580
|
+
return [4 /*yield*/, new Promise(function (resolve) { return (0, worker_timers_1.setTimeout)(resolve, 0); })];
|
|
581
|
+
case 2:
|
|
582
|
+
_f.sent();
|
|
583
|
+
queryParameterNames_stillOnHref = Object.keys((0, urlQueryParams_1.retrieveAllQueryParamFromUrl)({ "url": window.location.href }).values).filter(function (name) { return queryParameterNames_toCleanFromHref_1.has(name); });
|
|
584
|
+
if (queryParameterNames_stillOnHref.length === 0) {
|
|
585
|
+
return [3 /*break*/, 3];
|
|
586
|
+
}
|
|
587
|
+
if (count === 5) {
|
|
588
|
+
throw new Error([
|
|
589
|
+
"Failed to clean the OIDC query parameters from the",
|
|
590
|
+
"url with history.pushState after ".concat(count, " attempts")
|
|
591
|
+
].join(" "));
|
|
592
|
+
}
|
|
593
|
+
log === null || log === void 0 ? void 0 : log([
|
|
594
|
+
"Some oidc query params are still on the location.href after being cleaned",
|
|
595
|
+
"They where probably added back by an external library. Retrying to remove them...\n",
|
|
596
|
+
"Params still present: ".concat(queryParameterNames_stillOnHref.join(", "))
|
|
597
|
+
].join(" "));
|
|
598
|
+
url_2 = window.location.href;
|
|
599
|
+
queryParameterNames_stillOnHref.forEach(function (name) {
|
|
600
|
+
var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({
|
|
601
|
+
name: name,
|
|
602
|
+
url: url_2
|
|
603
|
+
});
|
|
604
|
+
(0, tsafe_2.assert)(result.wasPresent);
|
|
605
|
+
url_2 = result.newUrl;
|
|
606
|
+
});
|
|
607
|
+
count++;
|
|
608
|
+
return [3 /*break*/, 1];
|
|
609
|
+
case 3:
|
|
531
610
|
if (missingMandatoryParams.length !== 0) {
|
|
532
611
|
throw new Error([
|
|
533
612
|
"After the login process the following mandatory OIDC query parameters where missing:",
|
|
@@ -535,14 +614,14 @@ function createOidc(params) {
|
|
|
535
614
|
].join(" "));
|
|
536
615
|
}
|
|
537
616
|
oidcClientTsUser = undefined;
|
|
538
|
-
_f.label =
|
|
539
|
-
case
|
|
540
|
-
_f.trys.push([
|
|
617
|
+
_f.label = 4;
|
|
618
|
+
case 4:
|
|
619
|
+
_f.trys.push([4, 6, , 7]);
|
|
541
620
|
return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
|
|
542
|
-
case
|
|
621
|
+
case 5:
|
|
543
622
|
oidcClientTsUser = _f.sent();
|
|
544
|
-
return [3 /*break*/,
|
|
545
|
-
case
|
|
623
|
+
return [3 /*break*/, 7];
|
|
624
|
+
case 6:
|
|
546
625
|
error_1 = _f.sent();
|
|
547
626
|
(0, tsafe_2.assert)(error_1 instanceof Error);
|
|
548
627
|
if (error_1.message === "Failed to fetch") {
|
|
@@ -560,7 +639,7 @@ function createOidc(params) {
|
|
|
560
639
|
//NOTE: The user has likely pressed the back button just after logging in.
|
|
561
640
|
//UPDATE: I don't remember how to reproduce this case and I don't know if it's still relevant.
|
|
562
641
|
return [2 /*return*/, undefined];
|
|
563
|
-
case
|
|
642
|
+
case 7: return [2 /*return*/, {
|
|
564
643
|
"authMethod": "back from auth server",
|
|
565
644
|
oidcClientTsUser: oidcClientTsUser,
|
|
566
645
|
"backFromAuthServer": {
|
|
@@ -568,20 +647,21 @@ function createOidc(params) {
|
|
|
568
647
|
"result": result_backFromAuthServer
|
|
569
648
|
}
|
|
570
649
|
}];
|
|
571
|
-
case
|
|
572
|
-
case
|
|
650
|
+
case 8: return [4 /*yield*/, oidcClientTsUserManager.getUser()];
|
|
651
|
+
case 9:
|
|
573
652
|
oidcClientTsUser = _f.sent();
|
|
574
653
|
if (oidcClientTsUser === null) {
|
|
575
|
-
return [3 /*break*/,
|
|
654
|
+
return [3 /*break*/, 14];
|
|
576
655
|
}
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
656
|
+
log === null || log === void 0 ? void 0 : log("Restoring the auth from the session storage");
|
|
657
|
+
_f.label = 10;
|
|
658
|
+
case 10:
|
|
659
|
+
_f.trys.push([10, 12, , 13]);
|
|
580
660
|
return [4 /*yield*/, oidcClientTsUserManager.signinSilent()];
|
|
581
|
-
case
|
|
661
|
+
case 11:
|
|
582
662
|
_f.sent();
|
|
583
|
-
return [3 /*break*/,
|
|
584
|
-
case
|
|
663
|
+
return [3 /*break*/, 13];
|
|
664
|
+
case 12:
|
|
585
665
|
error_2 = _f.sent();
|
|
586
666
|
(0, tsafe_2.assert)(error_2 instanceof Error);
|
|
587
667
|
if (error_2.message === "Failed to fetch") {
|
|
@@ -598,11 +678,12 @@ function createOidc(params) {
|
|
|
598
678
|
});
|
|
599
679
|
}
|
|
600
680
|
return [2 /*return*/, undefined];
|
|
601
|
-
case
|
|
681
|
+
case 13: return [2 /*return*/, {
|
|
602
682
|
"authMethod": "session storage",
|
|
603
683
|
oidcClientTsUser: oidcClientTsUser
|
|
604
684
|
}];
|
|
605
|
-
case
|
|
685
|
+
case 14:
|
|
686
|
+
log === null || log === void 0 ? void 0 : log("Trying to restore the auth from the httpOnly cookie (silent signin with iframe)");
|
|
606
687
|
dLoginSuccessUrl_1 = new Deferred_1.Deferred();
|
|
607
688
|
timeoutDelayMs_1 = (function () {
|
|
608
689
|
var downlinkAndRtt = (0, getDownlinkAndRtt_1.getDownlinkAndRtt)();
|
|
@@ -777,6 +858,7 @@ function createOidc(params) {
|
|
|
777
858
|
{
|
|
778
859
|
var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ "name": "error", url: url });
|
|
779
860
|
if (result.wasPresent) {
|
|
861
|
+
log === null || log === void 0 ? void 0 : log("The auth server responded with: ".concat(result.value));
|
|
780
862
|
dLoginSuccessUrl_1.resolve(undefined);
|
|
781
863
|
return;
|
|
782
864
|
}
|
|
@@ -785,18 +867,18 @@ function createOidc(params) {
|
|
|
785
867
|
var missingMandatoryParams = [];
|
|
786
868
|
try {
|
|
787
869
|
for (var PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2 = __values(PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN), PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2.next(); !PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1.done; PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2.next()) {
|
|
788
|
-
var
|
|
789
|
-
var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name:
|
|
870
|
+
var name_8 = PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN_2_1.value;
|
|
871
|
+
var result = (0, urlQueryParams_1.retrieveQueryParamFromUrl)({ name: name_8, url: url });
|
|
790
872
|
if (!result.wasPresent) {
|
|
791
|
-
if (
|
|
873
|
+
if (name_8 === "iss") {
|
|
792
874
|
continue;
|
|
793
875
|
}
|
|
794
|
-
missingMandatoryParams.push(
|
|
876
|
+
missingMandatoryParams.push(name_8);
|
|
795
877
|
continue;
|
|
796
878
|
}
|
|
797
879
|
loginSuccessUrl = (0, urlQueryParams_1.addQueryParamToUrl)({
|
|
798
880
|
"url": loginSuccessUrl,
|
|
799
|
-
"name":
|
|
881
|
+
"name": name_8,
|
|
800
882
|
"value": result.value
|
|
801
883
|
}).newUrl;
|
|
802
884
|
}
|
|
@@ -832,20 +914,21 @@ function createOidc(params) {
|
|
|
832
914
|
}
|
|
833
915
|
});
|
|
834
916
|
return [4 /*yield*/, dLoginSuccessUrl_1.pr];
|
|
835
|
-
case
|
|
917
|
+
case 15:
|
|
836
918
|
loginSuccessUrl = _f.sent();
|
|
837
919
|
if (loginSuccessUrl === undefined) {
|
|
838
|
-
|
|
920
|
+
log === null || log === void 0 ? void 0 : log("There is no active session");
|
|
921
|
+
return [3 /*break*/, 20];
|
|
839
922
|
}
|
|
840
923
|
oidcClientTsUser = undefined;
|
|
841
|
-
_f.label =
|
|
842
|
-
case
|
|
843
|
-
_f.trys.push([
|
|
924
|
+
_f.label = 16;
|
|
925
|
+
case 16:
|
|
926
|
+
_f.trys.push([16, 18, , 19]);
|
|
844
927
|
return [4 /*yield*/, oidcClientTsUserManager.signinRedirectCallback(loginSuccessUrl)];
|
|
845
|
-
case
|
|
928
|
+
case 17:
|
|
846
929
|
oidcClientTsUser = _f.sent();
|
|
847
|
-
return [3 /*break*/,
|
|
848
|
-
case
|
|
930
|
+
return [3 /*break*/, 19];
|
|
931
|
+
case 18:
|
|
849
932
|
error_3 = _f.sent();
|
|
850
933
|
(0, tsafe_2.assert)(error_3 instanceof Error);
|
|
851
934
|
if (error_3.message === "Failed to fetch") {
|
|
@@ -861,11 +944,13 @@ function createOidc(params) {
|
|
|
861
944
|
});
|
|
862
945
|
}
|
|
863
946
|
throw error_3;
|
|
864
|
-
case
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
947
|
+
case 19:
|
|
948
|
+
log === null || log === void 0 ? void 0 : log("Successful silent signed in");
|
|
949
|
+
return [2 /*return*/, {
|
|
950
|
+
"authMethod": "silent signin",
|
|
951
|
+
oidcClientTsUser: oidcClientTsUser
|
|
952
|
+
}];
|
|
953
|
+
case 20: return [2 /*return*/, undefined];
|
|
869
954
|
}
|
|
870
955
|
});
|
|
871
956
|
});
|
|
@@ -891,7 +976,7 @@ function createOidc(params) {
|
|
|
891
976
|
return error;
|
|
892
977
|
})];
|
|
893
978
|
case 5:
|
|
894
|
-
resultOfLoginProcess =
|
|
979
|
+
resultOfLoginProcess = _e.sent();
|
|
895
980
|
common = {
|
|
896
981
|
"params": {
|
|
897
982
|
issuerUri: issuerUri,
|
|
@@ -899,6 +984,7 @@ function createOidc(params) {
|
|
|
899
984
|
}
|
|
900
985
|
};
|
|
901
986
|
if (resultOfLoginProcess instanceof Error) {
|
|
987
|
+
log === null || log === void 0 ? void 0 : log("User not logged in and there was an initialization error");
|
|
902
988
|
error = resultOfLoginProcess;
|
|
903
989
|
initializationError = error instanceof OidcInitializationError_1.OidcInitializationError
|
|
904
990
|
? error
|
|
@@ -922,15 +1008,17 @@ function createOidc(params) {
|
|
|
922
1008
|
return [2 /*return*/, oidc_1];
|
|
923
1009
|
}
|
|
924
1010
|
if (!(resultOfLoginProcess === undefined)) return [3 /*break*/, 8];
|
|
1011
|
+
log === null || log === void 0 ? void 0 : log("User not logged in");
|
|
925
1012
|
if (!isAuthGloballyRequired) return [3 /*break*/, 7];
|
|
1013
|
+
log === null || log === void 0 ? void 0 : log("Authentication is required everywhere on this app, redirecting to the login page");
|
|
926
1014
|
return [4 /*yield*/, loginOrGoToAuthServer({
|
|
927
1015
|
"action": "login",
|
|
928
1016
|
"doesCurrentHrefRequiresAuth": true,
|
|
929
1017
|
"redirectUrl": postLoginRedirectUrl
|
|
930
1018
|
})];
|
|
931
1019
|
case 6:
|
|
932
|
-
|
|
933
|
-
|
|
1020
|
+
_e.sent();
|
|
1021
|
+
_e.label = 7;
|
|
934
1022
|
case 7:
|
|
935
1023
|
startTrackingLastPublicRoute();
|
|
936
1024
|
oidc_2 = (0, tsafe_1.id)(__assign(__assign({}, common), { "isUserLoggedIn": false, "login": function (params) { return loginOrGoToAuthServer(__assign({ "action": "login" }, params)); }, "initializationError": undefined }));
|
|
@@ -938,6 +1026,7 @@ function createOidc(params) {
|
|
|
938
1026
|
// @ts-expect-error: We know what we are doing.
|
|
939
1027
|
return [2 /*return*/, oidc_2];
|
|
940
1028
|
case 8:
|
|
1029
|
+
log === null || log === void 0 ? void 0 : log("User logged in");
|
|
941
1030
|
currentTokens = resultOfLoginProcess.tokens;
|
|
942
1031
|
autoLogoutCountdownTickCallbacks = new Set();
|
|
943
1032
|
onTokenChanges = new Set();
|
|
@@ -1053,27 +1142,37 @@ function createOidc(params) {
|
|
|
1053
1142
|
// This can happen if the tokenExpirationTime is more than 24.8 days in the future.
|
|
1054
1143
|
Math.pow(2, 31) - 1);
|
|
1055
1144
|
if (msBeforeExpiration < 0) {
|
|
1145
|
+
log === null || log === void 0 ? void 0 : log("Token has already expired");
|
|
1056
1146
|
return 0;
|
|
1057
1147
|
}
|
|
1058
1148
|
return msBeforeExpiration;
|
|
1059
1149
|
};
|
|
1060
1150
|
(function scheduleRenew() {
|
|
1061
1151
|
var _this = this;
|
|
1152
|
+
var msBeforeExpiration = getMsBeforeExpiration_1();
|
|
1062
1153
|
// NOTE: We refresh the token 25 seconds before it expires.
|
|
1063
1154
|
// If the token expiration time is less than 25 seconds we refresh the token when
|
|
1064
1155
|
// only 1/10 of the token time is left.
|
|
1065
|
-
var renewMsBeforeExpires = Math.min(25000,
|
|
1156
|
+
var renewMsBeforeExpires = Math.min(25000, msBeforeExpiration * 0.1);
|
|
1157
|
+
log === null || log === void 0 ? void 0 : log([
|
|
1158
|
+
"".concat(Math.round(msBeforeExpiration / 1000), " seconds"),
|
|
1159
|
+
"before expiration of the access token.",
|
|
1160
|
+
"Scheduling renewal ".concat(Math.round(renewMsBeforeExpires / 1000), " seconds before expiration")
|
|
1161
|
+
].join(" "));
|
|
1066
1162
|
var timer = (0, worker_timers_1.setTimeout)(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
1067
1163
|
var _a;
|
|
1068
1164
|
return __generator(this, function (_b) {
|
|
1069
1165
|
switch (_b.label) {
|
|
1070
1166
|
case 0:
|
|
1071
|
-
|
|
1072
|
-
|
|
1167
|
+
log === null || log === void 0 ? void 0 : log("Renewing the access token now as it will expires in ".concat(Math.round(renewMsBeforeExpires / 1000), " seconds"));
|
|
1168
|
+
_b.label = 1;
|
|
1073
1169
|
case 1:
|
|
1074
|
-
_b.
|
|
1075
|
-
return [
|
|
1170
|
+
_b.trys.push([1, 3, , 5]);
|
|
1171
|
+
return [4 /*yield*/, oidc.renewTokens()];
|
|
1076
1172
|
case 2:
|
|
1173
|
+
_b.sent();
|
|
1174
|
+
return [3 /*break*/, 5];
|
|
1175
|
+
case 3:
|
|
1077
1176
|
_a = _b.sent();
|
|
1078
1177
|
// NOTE: Here semantically `"doesCurrentHrefRequiresAuth": false` is wrong.
|
|
1079
1178
|
// The user may very well be on a page that require auth.
|
|
@@ -1085,7 +1184,7 @@ function createOidc(params) {
|
|
|
1085
1184
|
"action": "login",
|
|
1086
1185
|
"doesCurrentHrefRequiresAuth": false
|
|
1087
1186
|
})];
|
|
1088
|
-
case
|
|
1187
|
+
case 4:
|
|
1089
1188
|
// NOTE: Here semantically `"doesCurrentHrefRequiresAuth": false` is wrong.
|
|
1090
1189
|
// The user may very well be on a page that require auth.
|
|
1091
1190
|
// However there's no way to enforce the browser to redirect back to
|
|
@@ -1093,11 +1192,11 @@ function createOidc(params) {
|
|
|
1093
1192
|
// This is due to the fact that pushing to history only works if it's
|
|
1094
1193
|
// triggered by a user interaction.
|
|
1095
1194
|
_b.sent();
|
|
1096
|
-
return [3 /*break*/,
|
|
1097
|
-
case
|
|
1195
|
+
return [3 /*break*/, 5];
|
|
1196
|
+
case 5: return [2 /*return*/];
|
|
1098
1197
|
}
|
|
1099
1198
|
});
|
|
1100
|
-
}); },
|
|
1199
|
+
}); }, msBeforeExpiration - renewMsBeforeExpires);
|
|
1101
1200
|
var tokenChangeUnsubscribe = oidc.subscribeToTokensChange(function () {
|
|
1102
1201
|
(0, worker_timers_1.clearTimeout)(timer);
|
|
1103
1202
|
tokenChangeUnsubscribe();
|
package/oidc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["src/oidc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["src/oidc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/oidc.ts
CHANGED
|
@@ -184,6 +184,7 @@ export type ParamsOfCreateOidc<
|
|
|
184
184
|
|
|
185
185
|
autoLogoutParams?: Parameters<Oidc.LoggedIn<any>["logout"]>[0];
|
|
186
186
|
isAuthGloballyRequired?: IsAuthGloballyRequired;
|
|
187
|
+
doEnableDebugLogs?: boolean;
|
|
187
188
|
};
|
|
188
189
|
|
|
189
190
|
let $isUserActive: StatefulObservable<boolean> | undefined = undefined;
|
|
@@ -210,9 +211,26 @@ export async function createOidc<
|
|
|
210
211
|
__unsafe_ssoSessionIdleSeconds,
|
|
211
212
|
autoLogoutParams = { "redirectTo": "current page" },
|
|
212
213
|
isAuthGloballyRequired = false,
|
|
213
|
-
postLoginRedirectUrl
|
|
214
|
+
postLoginRedirectUrl,
|
|
215
|
+
doEnableDebugLogs = false
|
|
214
216
|
} = params;
|
|
215
217
|
|
|
218
|
+
const log = (() => {
|
|
219
|
+
if (!doEnableDebugLogs) {
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return id<typeof console.log>((...[first, ...rest]) => {
|
|
224
|
+
const label = "oidc-spa";
|
|
225
|
+
|
|
226
|
+
if (typeof first === "string") {
|
|
227
|
+
console.log(...[`${label}: ${first}`, ...rest]);
|
|
228
|
+
} else {
|
|
229
|
+
console.log(...[`${label}:`, first, ...rest]);
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
})();
|
|
233
|
+
|
|
216
234
|
const getExtraQueryParams = (() => {
|
|
217
235
|
if (typeof extraQueryParamsOrGetter === "function") {
|
|
218
236
|
return extraQueryParamsOrGetter;
|
|
@@ -241,6 +259,8 @@ export async function createOidc<
|
|
|
241
259
|
`${issuerUri} ${clientId} ${clientSecret ?? ""} ${scopes.join(" ")}`
|
|
242
260
|
);
|
|
243
261
|
|
|
262
|
+
log?.("Calling createOidc", { params, publicUrl, configHash });
|
|
263
|
+
|
|
244
264
|
use_previous_instance: {
|
|
245
265
|
const prOidc = prOidcByConfigHash.get(configHash);
|
|
246
266
|
|
|
@@ -248,6 +268,8 @@ export async function createOidc<
|
|
|
248
268
|
break use_previous_instance;
|
|
249
269
|
}
|
|
250
270
|
|
|
271
|
+
log?.("Using previous instance of oidc-spa");
|
|
272
|
+
|
|
251
273
|
console.warn(
|
|
252
274
|
[
|
|
253
275
|
`oidc-spa has been instantiated more than once with the same configuration.`,
|
|
@@ -274,6 +296,8 @@ export async function createOidc<
|
|
|
274
296
|
"redirectUri": `${publicUrl}/silent-sso.htm`
|
|
275
297
|
};
|
|
276
298
|
|
|
299
|
+
log?.("Wether we use a dedicated silent-sso.htm file or not", silentSso);
|
|
300
|
+
|
|
277
301
|
const IS_SILENT_SSO_RESERVED_QUERY_PARAM_NAME = "oidc-spa_silent_sso";
|
|
278
302
|
const CONFIG_HASH_RESERVED_QUERY_PARAM_NAME = "oidc-spa_config_hash";
|
|
279
303
|
|
|
@@ -299,12 +323,22 @@ export async function createOidc<
|
|
|
299
323
|
}
|
|
300
324
|
|
|
301
325
|
if (silentSso.hasDedicatedHtmlFile) {
|
|
326
|
+
log?.(
|
|
327
|
+
[
|
|
328
|
+
"User forgot to create the silent-sso.htm file or the web server is not serving it correctly",
|
|
329
|
+
"suspending forever"
|
|
330
|
+
].join(" ")
|
|
331
|
+
);
|
|
302
332
|
// Here the user forget to create the silent-sso.htm file or or the web server is not serving it correctly
|
|
303
333
|
// we shouldn't fall back to the SPA page.
|
|
304
334
|
// In this case we want to let the timeout of the parent expire to provide the correct error message.
|
|
305
335
|
await new Promise<never>(() => {});
|
|
306
336
|
}
|
|
307
337
|
|
|
338
|
+
log?.(
|
|
339
|
+
"Silent SSO dedicated html file is not used, polyfilling the behavior by sending a message to the parent"
|
|
340
|
+
);
|
|
341
|
+
|
|
308
342
|
parent.postMessage(location.href, location.origin);
|
|
309
343
|
|
|
310
344
|
await new Promise<never>(() => {});
|
|
@@ -367,12 +401,15 @@ export async function createOidc<
|
|
|
367
401
|
...rest
|
|
368
402
|
} = params;
|
|
369
403
|
|
|
404
|
+
log?.("Calling loginOrGoToAuthServer", { params });
|
|
405
|
+
|
|
370
406
|
login_only: {
|
|
371
407
|
if (rest.action !== "login") {
|
|
372
408
|
break login_only;
|
|
373
409
|
}
|
|
374
410
|
|
|
375
411
|
if (hasLoginBeenCalled) {
|
|
412
|
+
log?.("login() has already been called, ignoring the call");
|
|
376
413
|
return new Promise<never>(() => {});
|
|
377
414
|
}
|
|
378
415
|
|
|
@@ -391,17 +428,27 @@ export async function createOidc<
|
|
|
391
428
|
if (document.visibilityState === "visible") {
|
|
392
429
|
document.removeEventListener("visibilitychange", callback);
|
|
393
430
|
|
|
431
|
+
log?.(
|
|
432
|
+
"We came back from the login pages and the state of the app has been restored"
|
|
433
|
+
);
|
|
434
|
+
|
|
394
435
|
if (rest.doesCurrentHrefRequiresAuth) {
|
|
395
436
|
if (lastPublicRoute !== undefined) {
|
|
437
|
+
log?.(`Loading last public route: ${lastPublicRoute}`);
|
|
396
438
|
window.location.href = lastPublicRoute;
|
|
397
439
|
} else {
|
|
440
|
+
log?.("We don't know the last public route, navigating back in history");
|
|
398
441
|
window.history.back();
|
|
399
442
|
}
|
|
400
443
|
} else {
|
|
444
|
+
log?.("The current page doesn't require auth, we don't need to reload");
|
|
401
445
|
hasLoginBeenCalled = false;
|
|
402
446
|
}
|
|
403
447
|
}
|
|
404
448
|
};
|
|
449
|
+
|
|
450
|
+
log?.("Start listening to visibility change event");
|
|
451
|
+
|
|
405
452
|
document.addEventListener("visibilitychange", callback);
|
|
406
453
|
}
|
|
407
454
|
|
|
@@ -471,6 +518,8 @@ export async function createOidc<
|
|
|
471
518
|
return url;
|
|
472
519
|
})();
|
|
473
520
|
|
|
521
|
+
log?.(`redirect_uri: ${redirect_uri}`);
|
|
522
|
+
|
|
474
523
|
//NOTE: We know there is a extraQueryParameter option but it doesn't allow
|
|
475
524
|
// to control the encoding so we have to highjack global URL Class that is
|
|
476
525
|
// used internally by oidc-client-ts. It's save to do so since this is the
|
|
@@ -552,19 +601,23 @@ export async function createOidc<
|
|
|
552
601
|
Object.defineProperty(window, "URL", { "value": URL });
|
|
553
602
|
}
|
|
554
603
|
|
|
604
|
+
// NOTE: This is for the behavior when the use presses the back button on the login pages.
|
|
605
|
+
// This is what happens when the user gave up the login process.
|
|
606
|
+
// We want to that to redirect to the last public page.
|
|
607
|
+
const redirectMethod = (() => {
|
|
608
|
+
switch (rest.action) {
|
|
609
|
+
case "login":
|
|
610
|
+
return rest.doesCurrentHrefRequiresAuth ? "replace" : "assign";
|
|
611
|
+
case "go to auth server":
|
|
612
|
+
return "assign";
|
|
613
|
+
}
|
|
614
|
+
})();
|
|
615
|
+
|
|
616
|
+
log?.(`redirectMethod: ${redirectMethod}`);
|
|
617
|
+
|
|
555
618
|
await oidcClientTsUserManager.signinRedirect({
|
|
556
619
|
redirect_uri,
|
|
557
|
-
|
|
558
|
-
// This is what happens when the user gave up the login process.
|
|
559
|
-
// We want to that to redirect to the last public page.
|
|
560
|
-
"redirectMethod": (() => {
|
|
561
|
-
switch (rest.action) {
|
|
562
|
-
case "login":
|
|
563
|
-
return rest.doesCurrentHrefRequiresAuth ? "replace" : "assign";
|
|
564
|
-
case "go to auth server":
|
|
565
|
-
return "assign";
|
|
566
|
-
}
|
|
567
|
-
})()
|
|
620
|
+
redirectMethod
|
|
568
621
|
});
|
|
569
622
|
return new Promise<never>(() => {});
|
|
570
623
|
};
|
|
@@ -573,9 +626,15 @@ export async function createOidc<
|
|
|
573
626
|
read_successful_login_query_params: {
|
|
574
627
|
let url = window.location.href;
|
|
575
628
|
|
|
629
|
+
const queryParameterNames_toCleanFromHref = new Set<string>();
|
|
630
|
+
|
|
576
631
|
{
|
|
632
|
+
const name = CONFIG_HASH_RESERVED_QUERY_PARAM_NAME;
|
|
633
|
+
|
|
634
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
635
|
+
|
|
577
636
|
const result = retrieveQueryParamFromUrl({
|
|
578
|
-
|
|
637
|
+
name,
|
|
579
638
|
url
|
|
580
639
|
});
|
|
581
640
|
|
|
@@ -586,11 +645,15 @@ export async function createOidc<
|
|
|
586
645
|
url = result.newUrl;
|
|
587
646
|
}
|
|
588
647
|
|
|
648
|
+
log?.("Back from the auth server, reading the query params to initialize the auth");
|
|
649
|
+
|
|
589
650
|
let loginSuccessUrl = "https://dummy.com";
|
|
590
651
|
|
|
591
652
|
let missingMandatoryParams: string[] = [];
|
|
592
653
|
|
|
593
654
|
for (const name of PARAMS_TO_RETRIEVE_FROM_SUCCESSFUL_LOGIN) {
|
|
655
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
656
|
+
|
|
594
657
|
const result = retrieveQueryParamFromUrl({ name, url });
|
|
595
658
|
|
|
596
659
|
if (!result.wasPresent) {
|
|
@@ -626,8 +689,12 @@ export async function createOidc<
|
|
|
626
689
|
let extraQueryParams_backFromAuthServer;
|
|
627
690
|
|
|
628
691
|
{
|
|
692
|
+
const name = EXTRA_QUERY_PARAMS_BACK_FROM_AUTH_SERVER_RESERVED_QUERY_PARAM_NAME;
|
|
693
|
+
|
|
694
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
695
|
+
|
|
629
696
|
const result = retrieveQueryParamFromUrl({
|
|
630
|
-
|
|
697
|
+
name,
|
|
631
698
|
url
|
|
632
699
|
});
|
|
633
700
|
|
|
@@ -644,8 +711,12 @@ export async function createOidc<
|
|
|
644
711
|
let queryParamsNamesToOmit_backFromAuthServer;
|
|
645
712
|
|
|
646
713
|
{
|
|
714
|
+
const name = RESULT_OMIT_RESERVED_QUERY_PARAM_NAME;
|
|
715
|
+
|
|
716
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
717
|
+
|
|
647
718
|
const result = retrieveQueryParamFromUrl({
|
|
648
|
-
|
|
719
|
+
name,
|
|
649
720
|
url
|
|
650
721
|
});
|
|
651
722
|
|
|
@@ -667,6 +738,9 @@ export async function createOidc<
|
|
|
667
738
|
if (queryParamsNamesToOmit_backFromAuthServer.includes(name)) {
|
|
668
739
|
continue;
|
|
669
740
|
}
|
|
741
|
+
|
|
742
|
+
queryParameterNames_toCleanFromHref.add(name);
|
|
743
|
+
|
|
670
744
|
result_backFromAuthServer[name] = value;
|
|
671
745
|
|
|
672
746
|
const result = retrieveQueryParamFromUrl({
|
|
@@ -680,7 +754,57 @@ export async function createOidc<
|
|
|
680
754
|
}
|
|
681
755
|
}
|
|
682
756
|
|
|
683
|
-
|
|
757
|
+
log?.("Cleaning the url from the OIDC query parameters");
|
|
758
|
+
|
|
759
|
+
{
|
|
760
|
+
let count = 0;
|
|
761
|
+
|
|
762
|
+
while (true) {
|
|
763
|
+
window.history.pushState(null, "", url);
|
|
764
|
+
|
|
765
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
766
|
+
|
|
767
|
+
const queryParameterNames_stillOnHref = Object.keys(
|
|
768
|
+
retrieveAllQueryParamFromUrl({ "url": window.location.href }).values
|
|
769
|
+
).filter(name => queryParameterNames_toCleanFromHref.has(name));
|
|
770
|
+
|
|
771
|
+
if (queryParameterNames_stillOnHref.length === 0) {
|
|
772
|
+
break;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
if (count === 5) {
|
|
776
|
+
throw new Error(
|
|
777
|
+
[
|
|
778
|
+
`Failed to clean the OIDC query parameters from the`,
|
|
779
|
+
`url with history.pushState after ${count} attempts`
|
|
780
|
+
].join(" ")
|
|
781
|
+
);
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
log?.(
|
|
785
|
+
[
|
|
786
|
+
`Some oidc query params are still on the location.href after being cleaned`,
|
|
787
|
+
`They where probably added back by an external library. Retrying to remove them...\n`,
|
|
788
|
+
`Params still present: ${queryParameterNames_stillOnHref.join(", ")}`
|
|
789
|
+
].join(" ")
|
|
790
|
+
);
|
|
791
|
+
|
|
792
|
+
url = window.location.href;
|
|
793
|
+
|
|
794
|
+
queryParameterNames_stillOnHref.forEach(name => {
|
|
795
|
+
const result = retrieveQueryParamFromUrl({
|
|
796
|
+
name,
|
|
797
|
+
url
|
|
798
|
+
});
|
|
799
|
+
|
|
800
|
+
assert(result.wasPresent);
|
|
801
|
+
|
|
802
|
+
url = result.newUrl;
|
|
803
|
+
});
|
|
804
|
+
|
|
805
|
+
count++;
|
|
806
|
+
}
|
|
807
|
+
}
|
|
684
808
|
|
|
685
809
|
if (missingMandatoryParams.length !== 0) {
|
|
686
810
|
throw new Error(
|
|
@@ -733,7 +857,11 @@ export async function createOidc<
|
|
|
733
857
|
break restore_from_session;
|
|
734
858
|
}
|
|
735
859
|
|
|
736
|
-
|
|
860
|
+
log?.("Restoring the auth from the session storage");
|
|
861
|
+
|
|
862
|
+
// Here the access token could be still valid but the session might have been invalidated
|
|
863
|
+
// on the server. For example if the logout failed to redirect to the app.
|
|
864
|
+
// We want to make sure that the session is still valid on the server side.
|
|
737
865
|
try {
|
|
738
866
|
await oidcClientTsUserManager.signinSilent();
|
|
739
867
|
} catch (error) {
|
|
@@ -763,6 +891,8 @@ export async function createOidc<
|
|
|
763
891
|
}
|
|
764
892
|
|
|
765
893
|
restore_from_http_only_cookie: {
|
|
894
|
+
log?.("Trying to restore the auth from the httpOnly cookie (silent signin with iframe)");
|
|
895
|
+
|
|
766
896
|
const dLoginSuccessUrl = new Deferred<string | undefined>();
|
|
767
897
|
|
|
768
898
|
const timeoutDelayMs = (() => {
|
|
@@ -937,6 +1067,7 @@ export async function createOidc<
|
|
|
937
1067
|
const result = retrieveQueryParamFromUrl({ "name": "error", url });
|
|
938
1068
|
|
|
939
1069
|
if (result.wasPresent) {
|
|
1070
|
+
log?.(`The auth server responded with: ${result.value}`);
|
|
940
1071
|
dLoginSuccessUrl.resolve(undefined);
|
|
941
1072
|
return;
|
|
942
1073
|
}
|
|
@@ -1001,6 +1132,7 @@ export async function createOidc<
|
|
|
1001
1132
|
const loginSuccessUrl = await dLoginSuccessUrl.pr;
|
|
1002
1133
|
|
|
1003
1134
|
if (loginSuccessUrl === undefined) {
|
|
1135
|
+
log?.("There is no active session");
|
|
1004
1136
|
break restore_from_http_only_cookie;
|
|
1005
1137
|
}
|
|
1006
1138
|
|
|
@@ -1027,6 +1159,8 @@ export async function createOidc<
|
|
|
1027
1159
|
throw error;
|
|
1028
1160
|
}
|
|
1029
1161
|
|
|
1162
|
+
log?.("Successful silent signed in");
|
|
1163
|
+
|
|
1030
1164
|
return {
|
|
1031
1165
|
"authMethod": "silent signin" as const,
|
|
1032
1166
|
oidcClientTsUser
|
|
@@ -1073,6 +1207,8 @@ export async function createOidc<
|
|
|
1073
1207
|
};
|
|
1074
1208
|
|
|
1075
1209
|
if (resultOfLoginProcess instanceof Error) {
|
|
1210
|
+
log?.("User not logged in and there was an initialization error");
|
|
1211
|
+
|
|
1076
1212
|
const error = resultOfLoginProcess;
|
|
1077
1213
|
|
|
1078
1214
|
const initializationError =
|
|
@@ -1109,7 +1245,10 @@ export async function createOidc<
|
|
|
1109
1245
|
}
|
|
1110
1246
|
|
|
1111
1247
|
if (resultOfLoginProcess === undefined) {
|
|
1248
|
+
log?.("User not logged in");
|
|
1249
|
+
|
|
1112
1250
|
if (isAuthGloballyRequired) {
|
|
1251
|
+
log?.("Authentication is required everywhere on this app, redirecting to the login page");
|
|
1113
1252
|
await loginOrGoToAuthServer({
|
|
1114
1253
|
"action": "login",
|
|
1115
1254
|
"doesCurrentHrefRequiresAuth": true,
|
|
@@ -1132,6 +1271,8 @@ export async function createOidc<
|
|
|
1132
1271
|
return oidc;
|
|
1133
1272
|
}
|
|
1134
1273
|
|
|
1274
|
+
log?.("User logged in");
|
|
1275
|
+
|
|
1135
1276
|
let currentTokens = resultOfLoginProcess.tokens;
|
|
1136
1277
|
|
|
1137
1278
|
const autoLogoutCountdownTickCallbacks = new Set<
|
|
@@ -1277,6 +1418,7 @@ export async function createOidc<
|
|
|
1277
1418
|
);
|
|
1278
1419
|
|
|
1279
1420
|
if (msBeforeExpiration < 0) {
|
|
1421
|
+
log?.("Token has already expired");
|
|
1280
1422
|
return 0;
|
|
1281
1423
|
}
|
|
1282
1424
|
|
|
@@ -1284,12 +1426,30 @@ export async function createOidc<
|
|
|
1284
1426
|
};
|
|
1285
1427
|
|
|
1286
1428
|
(function scheduleRenew() {
|
|
1429
|
+
const msBeforeExpiration = getMsBeforeExpiration();
|
|
1430
|
+
|
|
1287
1431
|
// NOTE: We refresh the token 25 seconds before it expires.
|
|
1288
1432
|
// If the token expiration time is less than 25 seconds we refresh the token when
|
|
1289
1433
|
// only 1/10 of the token time is left.
|
|
1290
|
-
const renewMsBeforeExpires = Math.min(25_000,
|
|
1434
|
+
const renewMsBeforeExpires = Math.min(25_000, msBeforeExpiration * 0.1);
|
|
1435
|
+
|
|
1436
|
+
log?.(
|
|
1437
|
+
[
|
|
1438
|
+
`${Math.round(msBeforeExpiration / 1000)} seconds`,
|
|
1439
|
+
`before expiration of the access token.`,
|
|
1440
|
+
`Scheduling renewal ${Math.round(
|
|
1441
|
+
renewMsBeforeExpires / 1000
|
|
1442
|
+
)} seconds before expiration`
|
|
1443
|
+
].join(" ")
|
|
1444
|
+
);
|
|
1291
1445
|
|
|
1292
1446
|
const timer = setTimeout(async () => {
|
|
1447
|
+
log?.(
|
|
1448
|
+
`Renewing the access token now as it will expires in ${Math.round(
|
|
1449
|
+
renewMsBeforeExpires / 1000
|
|
1450
|
+
)} seconds`
|
|
1451
|
+
);
|
|
1452
|
+
|
|
1293
1453
|
try {
|
|
1294
1454
|
await oidc.renewTokens();
|
|
1295
1455
|
} catch {
|
|
@@ -1304,7 +1464,7 @@ export async function createOidc<
|
|
|
1304
1464
|
"doesCurrentHrefRequiresAuth": false
|
|
1305
1465
|
});
|
|
1306
1466
|
}
|
|
1307
|
-
},
|
|
1467
|
+
}, msBeforeExpiration - renewMsBeforeExpires);
|
|
1308
1468
|
|
|
1309
1469
|
const { unsubscribe: tokenChangeUnsubscribe } = oidc.subscribeToTokensChange(() => {
|
|
1310
1470
|
clearTimeout(timer);
|