@asgardeo/browser 0.1.0 → 0.1.1
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/dist/__legacy__/client.d.ts +2 -2
- package/dist/__legacy__/clients/main-thread-client.d.ts +4 -3
- package/dist/__legacy__/helpers/authentication-helper.d.ts +3 -3
- package/dist/__legacy__/models/client.d.ts +4 -4
- package/dist/__legacy__/models/web-worker.d.ts +3 -3
- package/dist/cjs/index.js +1022 -1084
- package/dist/cjs/index.js.map +4 -4
- package/dist/index.d.ts +0 -2
- package/dist/index.js +1026 -1089
- package/dist/index.js.map +4 -4
- package/package.json +2 -2
- package/dist/constants/StyleConstants.d.ts +0 -28
- package/dist/utils/withVendorCSSClassPrefix.d.ts +0 -32
package/dist/cjs/index.js
CHANGED
|
@@ -1940,12 +1940,10 @@ __export(index_exports, {
|
|
|
1940
1940
|
ResponseType: () => import_axios2.ResponseType,
|
|
1941
1941
|
SPAHelper: () => SPAHelper,
|
|
1942
1942
|
SPAUtils: () => SPAUtils,
|
|
1943
|
-
StyleConstants: () => StyleConstants_default,
|
|
1944
1943
|
TOKEN_REQUEST_CONFIG_KEY: () => TOKEN_REQUEST_CONFIG_KEY,
|
|
1945
1944
|
WebWorkerClass: () => WebWorkerClass,
|
|
1946
1945
|
WebWorkerClient: () => WebWorkerClient,
|
|
1947
1946
|
hasAuthParamsInUrl: () => hasAuthParamsInUrl_default,
|
|
1948
|
-
withVendorCSSClassPrefix: () => withVendorCSSClassPrefix_default,
|
|
1949
1947
|
workerReceiver: () => workerReceiver
|
|
1950
1948
|
});
|
|
1951
1949
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -1954,7 +1952,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
1954
1952
|
var import_javascript8 = require("@asgardeo/javascript");
|
|
1955
1953
|
|
|
1956
1954
|
// src/__legacy__/clients/main-thread-client.ts
|
|
1957
|
-
var
|
|
1955
|
+
var import_javascript5 = require("@asgardeo/javascript");
|
|
1958
1956
|
|
|
1959
1957
|
// src/__legacy__/constants/messages-types.ts
|
|
1960
1958
|
var INIT = "init";
|
|
@@ -2024,7 +2022,7 @@ var STATE_QUERY = "state";
|
|
|
2024
2022
|
// src/__legacy__/constants/errors.ts
|
|
2025
2023
|
var ACCESS_TOKEN_INVALID = "Access token is invalid";
|
|
2026
2024
|
|
|
2027
|
-
// src/__legacy__/helpers/
|
|
2025
|
+
// src/__legacy__/helpers/session-management-helper.ts
|
|
2028
2026
|
var import_javascript2 = require("@asgardeo/javascript");
|
|
2029
2027
|
|
|
2030
2028
|
// src/__legacy__/utils/message-utils.ts
|
|
@@ -2239,665 +2237,156 @@ __publicField(_SPAUtils, "until", (condition, timeout = 500) => {
|
|
|
2239
2237
|
});
|
|
2240
2238
|
var SPAUtils = _SPAUtils;
|
|
2241
2239
|
|
|
2242
|
-
// src/__legacy__/helpers/
|
|
2243
|
-
var
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
getSessionState,
|
|
2267
|
-
config.checkSessionInterval ?? 3,
|
|
2268
|
-
config.sessionRefreshInterval ?? 300,
|
|
2269
|
-
config.afterSignInUrl,
|
|
2270
|
-
getAuthzURL
|
|
2271
|
-
);
|
|
2272
|
-
}
|
|
2273
|
-
async exchangeToken(config, enableRetrievingSignOutURLFromSession) {
|
|
2274
|
-
let useDefaultEndpoint = true;
|
|
2275
|
-
let matches = false;
|
|
2276
|
-
if (config?.tokenEndpoint) {
|
|
2277
|
-
useDefaultEndpoint = false;
|
|
2278
|
-
for (const baseUrl of [
|
|
2279
|
-
...(await this._storageManager.getConfigData())?.resourceServerURLs ?? [],
|
|
2280
|
-
config.baseUrl
|
|
2281
|
-
]) {
|
|
2282
|
-
if (baseUrl && config.tokenEndpoint?.startsWith(baseUrl)) {
|
|
2283
|
-
matches = true;
|
|
2284
|
-
break;
|
|
2285
|
-
}
|
|
2286
|
-
}
|
|
2240
|
+
// src/__legacy__/helpers/session-management-helper.ts
|
|
2241
|
+
var SessionManagementHelper = /* @__PURE__ */ (() => {
|
|
2242
|
+
let _clientID;
|
|
2243
|
+
let _checkSessionEndpoint;
|
|
2244
|
+
let _sessionState;
|
|
2245
|
+
let _interval;
|
|
2246
|
+
let _redirectURL;
|
|
2247
|
+
let _sessionRefreshInterval;
|
|
2248
|
+
let _signOut;
|
|
2249
|
+
let _sessionRefreshIntervalTimeout;
|
|
2250
|
+
let _checkSessionIntervalTimeout;
|
|
2251
|
+
let _storage;
|
|
2252
|
+
let _setSessionState;
|
|
2253
|
+
let _getSignInUrl;
|
|
2254
|
+
const initialize = (clientId, checkSessionEndpoint, getSessionState, interval, sessionRefreshInterval, redirectURL, getSignInUrl) => {
|
|
2255
|
+
_clientID = clientId;
|
|
2256
|
+
_checkSessionEndpoint = checkSessionEndpoint;
|
|
2257
|
+
_sessionState = getSessionState;
|
|
2258
|
+
_interval = interval;
|
|
2259
|
+
_redirectURL = redirectURL;
|
|
2260
|
+
_sessionRefreshInterval = sessionRefreshInterval;
|
|
2261
|
+
_getSignInUrl = getSignInUrl;
|
|
2262
|
+
if (_interval > -1) {
|
|
2263
|
+
initiateCheckSession();
|
|
2287
2264
|
}
|
|
2288
|
-
if (
|
|
2289
|
-
|
|
2265
|
+
if (_sessionRefreshInterval > -1) {
|
|
2266
|
+
sessionRefreshInterval = setInterval(() => {
|
|
2267
|
+
sendPromptNoneRequest();
|
|
2268
|
+
}, _sessionRefreshInterval * 1e3);
|
|
2290
2269
|
}
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
}
|
|
2296
|
-
if (config.returnsSession) {
|
|
2297
|
-
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
2298
|
-
return this._authenticationClient.getUser();
|
|
2299
|
-
} else {
|
|
2300
|
-
return response;
|
|
2301
|
-
}
|
|
2302
|
-
}).catch((error) => {
|
|
2303
|
-
return Promise.reject(error);
|
|
2304
|
-
});
|
|
2305
|
-
} else {
|
|
2306
|
-
return Promise.reject(
|
|
2307
|
-
new import_javascript2.AsgardeoAuthException(
|
|
2308
|
-
"SPA-MAIN_THREAD_CLIENT-RCG-IV01",
|
|
2309
|
-
"Request to the provided endpoint is prohibited.",
|
|
2310
|
-
"Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified token endpoint in this request cannot be found among the `resourceServerURLs`"
|
|
2311
|
-
)
|
|
2312
|
-
);
|
|
2270
|
+
};
|
|
2271
|
+
const initiateCheckSession = async () => {
|
|
2272
|
+
if (!_checkSessionEndpoint || !_clientID || !_redirectURL) {
|
|
2273
|
+
return;
|
|
2313
2274
|
}
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2275
|
+
const OP_IFRAME2 = "opIFrame";
|
|
2276
|
+
async function checkSession() {
|
|
2277
|
+
const sessionState = await _sessionState();
|
|
2278
|
+
if (Boolean(_clientID) && Boolean(sessionState)) {
|
|
2279
|
+
const message = `${_clientID} ${sessionState}`;
|
|
2280
|
+
const rpIFrame2 = document.getElementById(RP_IFRAME);
|
|
2281
|
+
const opIframe2 = rpIFrame2?.contentDocument?.getElementById(OP_IFRAME2);
|
|
2282
|
+
const win = opIframe2.contentWindow;
|
|
2283
|
+
win?.postMessage(message, _checkSessionEndpoint);
|
|
2284
|
+
}
|
|
2321
2285
|
}
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2286
|
+
const rpIFrame = document.getElementById(RP_IFRAME);
|
|
2287
|
+
const opIframe = rpIFrame?.contentDocument?.getElementById(OP_IFRAME2);
|
|
2288
|
+
opIframe.src = _checkSessionEndpoint + "?client_id=" + _clientID + "&redirect_uri=" + _redirectURL;
|
|
2289
|
+
_checkSessionIntervalTimeout = setInterval(checkSession, _interval * 1e3);
|
|
2290
|
+
listenToResponseFromOPIFrame();
|
|
2291
|
+
};
|
|
2292
|
+
const reset = () => {
|
|
2293
|
+
clearInterval(_checkSessionIntervalTimeout);
|
|
2294
|
+
clearInterval(_sessionRefreshIntervalTimeout);
|
|
2295
|
+
};
|
|
2296
|
+
const listenToResponseFromOPIFrame = () => {
|
|
2297
|
+
async function receiveMessage(e) {
|
|
2298
|
+
const targetOrigin = _checkSessionEndpoint;
|
|
2299
|
+
if (!targetOrigin || targetOrigin?.indexOf(e.origin) < 0 || e?.data?.type === SET_SESSION_STATE_FROM_IFRAME) {
|
|
2300
|
+
return;
|
|
2329
2301
|
}
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2302
|
+
if (e.data === "unchanged") {
|
|
2303
|
+
} else if (e.data === "error") {
|
|
2304
|
+
window.location.href = await _signOut();
|
|
2305
|
+
} else if (e.data === "changed") {
|
|
2306
|
+
sendPromptNoneRequest();
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
2309
|
+
window?.addEventListener("message", receiveMessage, false);
|
|
2310
|
+
};
|
|
2311
|
+
const sendPromptNoneRequest = async () => {
|
|
2312
|
+
const rpIFrame = document.getElementById(RP_IFRAME);
|
|
2313
|
+
const promptNoneIFrame = rpIFrame?.contentDocument?.getElementById(
|
|
2314
|
+
PROMPT_NONE_IFRAME
|
|
2315
|
+
);
|
|
2316
|
+
if (SPAUtils.canSendPromptNoneRequest()) {
|
|
2317
|
+
SPAUtils.setPromptNoneRequestSent(true);
|
|
2318
|
+
const receiveMessageListener = (e) => {
|
|
2319
|
+
if (e?.data?.type === SET_SESSION_STATE_FROM_IFRAME) {
|
|
2320
|
+
_setSessionState(e?.data?.data ?? "");
|
|
2321
|
+
window?.removeEventListener("message", receiveMessageListener);
|
|
2322
|
+
}
|
|
2335
2323
|
};
|
|
2336
|
-
|
|
2337
|
-
|
|
2324
|
+
if (_storage === "browserMemory" /* BrowserMemory */ || _storage === "webWorker" /* WebWorker */) {
|
|
2325
|
+
window?.addEventListener("message", receiveMessageListener);
|
|
2326
|
+
}
|
|
2327
|
+
const promptNoneURL = await _getSignInUrl({
|
|
2328
|
+
prompt: "none",
|
|
2329
|
+
response_mode: "query",
|
|
2330
|
+
state: STATE
|
|
2331
|
+
});
|
|
2332
|
+
promptNoneIFrame.src = promptNoneURL;
|
|
2338
2333
|
}
|
|
2339
|
-
}
|
|
2340
|
-
async
|
|
2341
|
-
const
|
|
2342
|
-
const
|
|
2343
|
-
const
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2334
|
+
};
|
|
2335
|
+
const receivePromptNoneResponse = async (setSessionState) => {
|
|
2336
|
+
const state = new URL(window.location.href).searchParams.get(STATE_QUERY);
|
|
2337
|
+
const sessionState = new URL(window.location.href).searchParams.get(import_javascript2.OIDCRequestConstants.Params.SESSION_STATE);
|
|
2338
|
+
const parent = window.parent.parent;
|
|
2339
|
+
if (state !== null && (state.includes(STATE) || state.includes(SILENT_SIGN_IN_STATE))) {
|
|
2340
|
+
const code = new URL(window.location.href).searchParams.get("code");
|
|
2341
|
+
if (code !== null && code.length !== 0) {
|
|
2342
|
+
if (state.includes(SILENT_SIGN_IN_STATE)) {
|
|
2343
|
+
const message = {
|
|
2344
|
+
data: {
|
|
2345
|
+
code,
|
|
2346
|
+
sessionState: sessionState ?? "",
|
|
2347
|
+
state
|
|
2348
|
+
},
|
|
2349
|
+
type: CHECK_SESSION_SIGNED_IN
|
|
2350
|
+
};
|
|
2351
|
+
sessionStorage.setItem(INITIALIZED_SILENT_SIGN_IN, "false");
|
|
2352
|
+
parent.postMessage(message, parent.origin);
|
|
2353
|
+
SPAUtils.setPromptNoneRequestSent(false);
|
|
2354
|
+
window.location.href = "about:blank";
|
|
2355
|
+
await SPAUtils.waitTillPageRedirect();
|
|
2356
|
+
return true;
|
|
2354
2357
|
}
|
|
2355
|
-
|
|
2356
|
-
|
|
2358
|
+
const newSessionState = new URL(window.location.href).searchParams.get("session_state");
|
|
2359
|
+
if (_storage === "localStorage" /* LocalStorage */ || _storage === "sessionStorage" /* SessionStorage */) {
|
|
2360
|
+
setSessionState && await setSessionState(newSessionState);
|
|
2361
|
+
} else {
|
|
2362
|
+
const message = {
|
|
2363
|
+
data: newSessionState ?? "",
|
|
2364
|
+
type: SET_SESSION_STATE_FROM_IFRAME
|
|
2365
|
+
};
|
|
2366
|
+
window?.parent?.parent?.postMessage(message);
|
|
2367
|
+
}
|
|
2368
|
+
SPAUtils.setPromptNoneRequestSent(false);
|
|
2369
|
+
window.location.href = "about:blank";
|
|
2370
|
+
await SPAUtils.waitTillPageRedirect();
|
|
2371
|
+
return true;
|
|
2372
|
+
} else {
|
|
2373
|
+
if (state.includes(SILENT_SIGN_IN_STATE)) {
|
|
2374
|
+
const message = {
|
|
2375
|
+
type: CHECK_SESSION_SIGNED_OUT
|
|
2376
|
+
};
|
|
2377
|
+
window.parent.parent.postMessage(message, parent.origin);
|
|
2378
|
+
SPAUtils.setPromptNoneRequestSent(false);
|
|
2379
|
+
window.location.href = "about:blank";
|
|
2380
|
+
await SPAUtils.waitTillPageRedirect();
|
|
2381
|
+
return true;
|
|
2357
2382
|
}
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
for (const baseUrl of [...await config?.resourceServerURLs ?? [], config.baseUrl]) {
|
|
2366
|
-
if (baseUrl && requestConfig?.url?.startsWith(baseUrl)) {
|
|
2367
|
-
matches = true;
|
|
2368
|
-
break;
|
|
2369
|
-
}
|
|
2370
|
-
}
|
|
2371
|
-
if (matches) {
|
|
2372
|
-
return httpClient.request(requestConfig).then((response) => {
|
|
2373
|
-
return Promise.resolve(response);
|
|
2374
|
-
}).catch(async (error) => {
|
|
2375
|
-
if (error?.response?.status === 401 || !error?.response) {
|
|
2376
|
-
if (this._isTokenRefreshing) {
|
|
2377
|
-
return this.retryFailedRequests({
|
|
2378
|
-
enableRetrievingSignOutURLFromSession,
|
|
2379
|
-
httpClient,
|
|
2380
|
-
httpErrorCallback,
|
|
2381
|
-
httpFinishCallback,
|
|
2382
|
-
isHttpHandlerEnabled,
|
|
2383
|
-
requestConfig
|
|
2384
|
-
});
|
|
2385
|
-
}
|
|
2386
|
-
this._isTokenRefreshing = true;
|
|
2387
|
-
let refreshAccessTokenResponse;
|
|
2388
|
-
try {
|
|
2389
|
-
refreshAccessTokenResponse = await this.refreshAccessToken(enableRetrievingSignOutURLFromSession);
|
|
2390
|
-
this._isTokenRefreshing = false;
|
|
2391
|
-
} catch (refreshError) {
|
|
2392
|
-
this._isTokenRefreshing = false;
|
|
2393
|
-
if (isHttpHandlerEnabled) {
|
|
2394
|
-
if (typeof httpErrorCallback === "function") {
|
|
2395
|
-
await httpErrorCallback({
|
|
2396
|
-
...error,
|
|
2397
|
-
code: ACCESS_TOKEN_INVALID
|
|
2398
|
-
});
|
|
2399
|
-
}
|
|
2400
|
-
if (typeof httpFinishCallback === "function") {
|
|
2401
|
-
httpFinishCallback();
|
|
2402
|
-
}
|
|
2403
|
-
}
|
|
2404
|
-
throw new import_javascript2.AsgardeoAuthException(
|
|
2405
|
-
"SPA-AUTH_HELPER-HR-SE01",
|
|
2406
|
-
refreshError?.name ?? "Refresh token request failed.",
|
|
2407
|
-
refreshError?.message ?? "An error occurred while trying to refresh the access token following a 401 response from the server."
|
|
2408
|
-
);
|
|
2409
|
-
}
|
|
2410
|
-
if (refreshAccessTokenResponse) {
|
|
2411
|
-
try {
|
|
2412
|
-
const httpResponse = await httpClient.request(requestConfig);
|
|
2413
|
-
return Promise.resolve(httpResponse);
|
|
2414
|
-
} catch (error2) {
|
|
2415
|
-
if (isHttpHandlerEnabled) {
|
|
2416
|
-
if (typeof httpErrorCallback === "function") {
|
|
2417
|
-
await httpErrorCallback(error2);
|
|
2418
|
-
}
|
|
2419
|
-
if (typeof httpFinishCallback === "function") {
|
|
2420
|
-
httpFinishCallback();
|
|
2421
|
-
}
|
|
2422
|
-
}
|
|
2423
|
-
return Promise.reject(error2);
|
|
2424
|
-
}
|
|
2425
|
-
}
|
|
2426
|
-
}
|
|
2427
|
-
if (isHttpHandlerEnabled) {
|
|
2428
|
-
if (typeof httpErrorCallback === "function") {
|
|
2429
|
-
await httpErrorCallback(error);
|
|
2430
|
-
}
|
|
2431
|
-
if (typeof httpFinishCallback === "function") {
|
|
2432
|
-
httpFinishCallback();
|
|
2433
|
-
}
|
|
2434
|
-
}
|
|
2435
|
-
return Promise.reject(error);
|
|
2436
|
-
});
|
|
2437
|
-
} else {
|
|
2438
|
-
return Promise.reject(
|
|
2439
|
-
new import_javascript2.AsgardeoAuthException(
|
|
2440
|
-
"SPA-AUTH_HELPER-HR-IV02",
|
|
2441
|
-
"Request to the provided endpoint is prohibited.",
|
|
2442
|
-
"Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified endpoint in this request cannot be found among the `resourceServerURLs`"
|
|
2443
|
-
)
|
|
2444
|
-
);
|
|
2445
|
-
}
|
|
2446
|
-
}
|
|
2447
|
-
async httpRequestAll(requestConfigs, httpClient, isHttpHandlerEnabled, httpErrorCallback, httpFinishCallback) {
|
|
2448
|
-
let matches = true;
|
|
2449
|
-
const config = await this._storageManager.getConfigData();
|
|
2450
|
-
for (const requestConfig of requestConfigs) {
|
|
2451
|
-
let urlMatches = false;
|
|
2452
|
-
for (const baseUrl of [...(await config)?.resourceServerURLs ?? [], config.baseUrl]) {
|
|
2453
|
-
if (baseUrl && requestConfig.url?.startsWith(baseUrl)) {
|
|
2454
|
-
urlMatches = true;
|
|
2455
|
-
break;
|
|
2456
|
-
}
|
|
2457
|
-
}
|
|
2458
|
-
if (!urlMatches) {
|
|
2459
|
-
matches = false;
|
|
2460
|
-
break;
|
|
2461
|
-
}
|
|
2462
|
-
}
|
|
2463
|
-
const requests = [];
|
|
2464
|
-
if (matches) {
|
|
2465
|
-
requestConfigs.forEach((request) => {
|
|
2466
|
-
requests.push(httpClient.request(request));
|
|
2467
|
-
});
|
|
2468
|
-
return httpClient?.all && httpClient.all(requests).then((responses) => {
|
|
2469
|
-
return Promise.resolve(responses);
|
|
2470
|
-
}).catch(async (error) => {
|
|
2471
|
-
if (error?.response?.status === 401 || !error?.response) {
|
|
2472
|
-
let refreshTokenResponse;
|
|
2473
|
-
try {
|
|
2474
|
-
refreshTokenResponse = await this._authenticationClient.refreshAccessToken();
|
|
2475
|
-
} catch (refreshError) {
|
|
2476
|
-
if (isHttpHandlerEnabled) {
|
|
2477
|
-
if (typeof httpErrorCallback === "function") {
|
|
2478
|
-
await httpErrorCallback({
|
|
2479
|
-
...error,
|
|
2480
|
-
code: ACCESS_TOKEN_INVALID
|
|
2481
|
-
});
|
|
2482
|
-
}
|
|
2483
|
-
if (typeof httpFinishCallback === "function") {
|
|
2484
|
-
httpFinishCallback();
|
|
2485
|
-
}
|
|
2486
|
-
}
|
|
2487
|
-
throw new import_javascript2.AsgardeoAuthException(
|
|
2488
|
-
"SPA-AUTH_HELPER-HRA-SE01",
|
|
2489
|
-
refreshError?.name ?? "Refresh token request failed.",
|
|
2490
|
-
refreshError?.message ?? "An error occurred while trying to refresh the access token following a 401 response from the server."
|
|
2491
|
-
);
|
|
2492
|
-
}
|
|
2493
|
-
if (refreshTokenResponse) {
|
|
2494
|
-
return httpClient.all && httpClient.all(requests).then((response) => {
|
|
2495
|
-
return Promise.resolve(response);
|
|
2496
|
-
}).catch(async (error2) => {
|
|
2497
|
-
if (isHttpHandlerEnabled) {
|
|
2498
|
-
if (typeof httpErrorCallback === "function") {
|
|
2499
|
-
await httpErrorCallback(error2);
|
|
2500
|
-
}
|
|
2501
|
-
if (typeof httpFinishCallback === "function") {
|
|
2502
|
-
httpFinishCallback();
|
|
2503
|
-
}
|
|
2504
|
-
}
|
|
2505
|
-
return Promise.reject(error2);
|
|
2506
|
-
});
|
|
2507
|
-
}
|
|
2508
|
-
}
|
|
2509
|
-
if (isHttpHandlerEnabled) {
|
|
2510
|
-
if (typeof httpErrorCallback === "function") {
|
|
2511
|
-
await httpErrorCallback(error);
|
|
2512
|
-
}
|
|
2513
|
-
if (typeof httpFinishCallback === "function") {
|
|
2514
|
-
httpFinishCallback();
|
|
2515
|
-
}
|
|
2516
|
-
}
|
|
2517
|
-
return Promise.reject(error);
|
|
2518
|
-
});
|
|
2519
|
-
} else {
|
|
2520
|
-
throw new import_javascript2.AsgardeoAuthException(
|
|
2521
|
-
"SPA-AUTH_HELPER-HRA-IV02",
|
|
2522
|
-
"Request to the provided endpoint is prohibited.",
|
|
2523
|
-
"Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified endpoint in this request cannot be found among the `resourceServerURLs`"
|
|
2524
|
-
);
|
|
2525
|
-
}
|
|
2526
|
-
}
|
|
2527
|
-
async requestAccessToken(authorizationCode, sessionState, checkSession, pkce, state, tokenRequestConfig) {
|
|
2528
|
-
const config = await this._storageManager.getConfigData();
|
|
2529
|
-
if (config.storage === "browserMemory" /* BrowserMemory */ && config.enablePKCE && sessionState) {
|
|
2530
|
-
const pkce2 = SPAUtils.getPKCE((0, import_javascript2.extractPkceStorageKeyFromState)(sessionState));
|
|
2531
|
-
await this._authenticationClient.setPKCECode((0, import_javascript2.extractPkceStorageKeyFromState)(sessionState), pkce2);
|
|
2532
|
-
} else if (config.storage === "webWorker" /* WebWorker */ && pkce) {
|
|
2533
|
-
await this._authenticationClient.setPKCECode(pkce, state ?? "");
|
|
2534
|
-
}
|
|
2535
|
-
if (authorizationCode) {
|
|
2536
|
-
return this._authenticationClient.requestAccessToken(authorizationCode, sessionState ?? "", state ?? "", void 0, tokenRequestConfig).then(async () => {
|
|
2537
|
-
if (config.storage !== "webWorker" /* WebWorker */) {
|
|
2538
|
-
SPAUtils.setSignOutURL(await this._authenticationClient.getSignOutUrl(), config.clientId, this._instanceID);
|
|
2539
|
-
if (this._spaHelper) {
|
|
2540
|
-
this._spaHelper.clearRefreshTokenTimeout();
|
|
2541
|
-
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
2542
|
-
}
|
|
2543
|
-
if (checkSession && typeof checkSession === "function" && config.enableOIDCSessionManagement) {
|
|
2544
|
-
checkSession();
|
|
2545
|
-
}
|
|
2546
|
-
} else {
|
|
2547
|
-
if (this._spaHelper) {
|
|
2548
|
-
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
2549
|
-
}
|
|
2550
|
-
}
|
|
2551
|
-
return this._authenticationClient.getUser();
|
|
2552
|
-
}).catch((error) => {
|
|
2553
|
-
return Promise.reject(error);
|
|
2554
|
-
});
|
|
2555
|
-
}
|
|
2556
|
-
return Promise.reject(
|
|
2557
|
-
new import_javascript2.AsgardeoAuthException(
|
|
2558
|
-
"SPA-AUTH_HELPER-RAT1-NF01",
|
|
2559
|
-
"No authorization code.",
|
|
2560
|
-
"No authorization code was found."
|
|
2561
|
-
)
|
|
2562
|
-
);
|
|
2563
|
-
}
|
|
2564
|
-
async trySignInSilently(constructSilentSignInUrl, requestAccessToken, sessionManagementHelper, additionalParams, tokenRequestConfig) {
|
|
2565
|
-
if (SPAUtils.isInitializedSilentSignIn()) {
|
|
2566
|
-
await sessionManagementHelper.receivePromptNoneResponse();
|
|
2567
|
-
return Promise.resolve({
|
|
2568
|
-
allowedScopes: "",
|
|
2569
|
-
displayName: "",
|
|
2570
|
-
email: "",
|
|
2571
|
-
sessionState: "",
|
|
2572
|
-
sub: "",
|
|
2573
|
-
tenantDomain: "",
|
|
2574
|
-
username: ""
|
|
2575
|
-
});
|
|
2576
|
-
}
|
|
2577
|
-
const rpIFrame = document.getElementById(RP_IFRAME);
|
|
2578
|
-
const promptNoneIFrame = rpIFrame?.contentDocument?.getElementById(
|
|
2579
|
-
PROMPT_NONE_IFRAME
|
|
2580
|
-
);
|
|
2581
|
-
try {
|
|
2582
|
-
const url = await constructSilentSignInUrl(additionalParams);
|
|
2583
|
-
promptNoneIFrame.src = url;
|
|
2584
|
-
} catch (error) {
|
|
2585
|
-
return Promise.reject(error);
|
|
2586
|
-
}
|
|
2587
|
-
return new Promise((resolve, reject) => {
|
|
2588
|
-
const timer = setTimeout(() => {
|
|
2589
|
-
resolve(false);
|
|
2590
|
-
}, 1e4);
|
|
2591
|
-
const listenToPromptNoneIFrame = async (e) => {
|
|
2592
|
-
const data = e.data;
|
|
2593
|
-
if (data?.type == CHECK_SESSION_SIGNED_OUT) {
|
|
2594
|
-
window.removeEventListener("message", listenToPromptNoneIFrame);
|
|
2595
|
-
clearTimeout(timer);
|
|
2596
|
-
resolve(false);
|
|
2597
|
-
}
|
|
2598
|
-
if (data?.type == CHECK_SESSION_SIGNED_IN && data?.data?.code) {
|
|
2599
|
-
requestAccessToken(data?.data?.code, data?.data?.sessionState, data?.data?.state, tokenRequestConfig).then((response) => {
|
|
2600
|
-
window.removeEventListener("message", listenToPromptNoneIFrame);
|
|
2601
|
-
resolve(response);
|
|
2602
|
-
}).catch((error) => {
|
|
2603
|
-
window.removeEventListener("message", listenToPromptNoneIFrame);
|
|
2604
|
-
reject(error);
|
|
2605
|
-
}).finally(() => {
|
|
2606
|
-
clearTimeout(timer);
|
|
2607
|
-
});
|
|
2608
|
-
}
|
|
2609
|
-
};
|
|
2610
|
-
window.addEventListener("message", listenToPromptNoneIFrame);
|
|
2611
|
-
});
|
|
2612
|
-
}
|
|
2613
|
-
async handleSignIn(shouldStopAuthn, checkSession, tryRetrievingUserInfo) {
|
|
2614
|
-
const config = await this._storageManager.getConfigData();
|
|
2615
|
-
if (await shouldStopAuthn()) {
|
|
2616
|
-
return Promise.resolve({
|
|
2617
|
-
allowedScopes: "",
|
|
2618
|
-
displayName: "",
|
|
2619
|
-
email: "",
|
|
2620
|
-
sessionState: "",
|
|
2621
|
-
sub: "",
|
|
2622
|
-
tenantDomain: "",
|
|
2623
|
-
username: ""
|
|
2624
|
-
});
|
|
2625
|
-
}
|
|
2626
|
-
if (config.storage !== "webWorker" /* WebWorker */) {
|
|
2627
|
-
if (await this._authenticationClient.isSignedIn()) {
|
|
2628
|
-
this._spaHelper.clearRefreshTokenTimeout();
|
|
2629
|
-
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
2630
|
-
if (config.enableOIDCSessionManagement) {
|
|
2631
|
-
checkSession();
|
|
2632
|
-
}
|
|
2633
|
-
return Promise.resolve(await this._authenticationClient.getUser());
|
|
2634
|
-
}
|
|
2635
|
-
}
|
|
2636
|
-
const error = new URL(window.location.href).searchParams.get(ERROR);
|
|
2637
|
-
const errorDescription = new URL(window.location.href).searchParams.get(ERROR_DESCRIPTION);
|
|
2638
|
-
if (error) {
|
|
2639
|
-
const url = new URL(window.location.href);
|
|
2640
|
-
url.searchParams.delete(ERROR);
|
|
2641
|
-
url.searchParams.delete(ERROR_DESCRIPTION);
|
|
2642
|
-
history.pushState(null, document.title, url.toString());
|
|
2643
|
-
throw new import_javascript2.AsgardeoAuthException("SPA-AUTH_HELPER-SI-SE01", error, errorDescription ?? "");
|
|
2644
|
-
}
|
|
2645
|
-
if (config.storage === "webWorker" /* WebWorker */ && tryRetrievingUserInfo) {
|
|
2646
|
-
const basicUserInfo = await tryRetrievingUserInfo();
|
|
2647
|
-
if (basicUserInfo) {
|
|
2648
|
-
return basicUserInfo;
|
|
2649
|
-
}
|
|
2650
|
-
}
|
|
2651
|
-
return Promise.resolve(void 0);
|
|
2652
|
-
}
|
|
2653
|
-
async attachTokenToRequestConfig(request) {
|
|
2654
|
-
const requestConfig = { attachToken: true, ...request };
|
|
2655
|
-
if (requestConfig.attachToken) {
|
|
2656
|
-
if (requestConfig.shouldAttachIDPAccessToken) {
|
|
2657
|
-
request.headers = {
|
|
2658
|
-
...request.headers,
|
|
2659
|
-
Authorization: `Bearer ${await this.getIDPAccessToken()}`
|
|
2660
|
-
};
|
|
2661
|
-
} else {
|
|
2662
|
-
request.headers = {
|
|
2663
|
-
...request.headers,
|
|
2664
|
-
Authorization: `Bearer ${await this.getAccessToken()}`
|
|
2665
|
-
};
|
|
2666
|
-
}
|
|
2667
|
-
}
|
|
2668
|
-
}
|
|
2669
|
-
async getUser() {
|
|
2670
|
-
return this._authenticationClient.getUser();
|
|
2671
|
-
}
|
|
2672
|
-
async getDecodedIdToken() {
|
|
2673
|
-
return this._authenticationClient.getDecodedIdToken();
|
|
2674
|
-
}
|
|
2675
|
-
async getDecodedIDPIDToken() {
|
|
2676
|
-
return this._authenticationClient.getDecodedIdToken();
|
|
2677
|
-
}
|
|
2678
|
-
async getCrypto() {
|
|
2679
|
-
return this._authenticationClient.getCrypto();
|
|
2680
|
-
}
|
|
2681
|
-
async getIdToken() {
|
|
2682
|
-
return this._authenticationClient.getIdToken();
|
|
2683
|
-
}
|
|
2684
|
-
async getOpenIDProviderEndpoints() {
|
|
2685
|
-
return this._authenticationClient.getOpenIDProviderEndpoints();
|
|
2686
|
-
}
|
|
2687
|
-
async getAccessToken() {
|
|
2688
|
-
return this._authenticationClient.getAccessToken();
|
|
2689
|
-
}
|
|
2690
|
-
async getIDPAccessToken() {
|
|
2691
|
-
return (await this._storageManager.getSessionData())?.access_token;
|
|
2692
|
-
}
|
|
2693
|
-
getStorageManager() {
|
|
2694
|
-
return this._storageManager;
|
|
2695
|
-
}
|
|
2696
|
-
async isSignedIn() {
|
|
2697
|
-
return this._authenticationClient.isSignedIn();
|
|
2698
|
-
}
|
|
2699
|
-
};
|
|
2700
|
-
|
|
2701
|
-
// src/__legacy__/helpers/spa-helper.ts
|
|
2702
|
-
var import_javascript3 = require("@asgardeo/javascript");
|
|
2703
|
-
var SPAHelper = class {
|
|
2704
|
-
constructor(authClient) {
|
|
2705
|
-
__publicField(this, "_authenticationClient");
|
|
2706
|
-
__publicField(this, "_storageManager");
|
|
2707
|
-
this._authenticationClient = authClient;
|
|
2708
|
-
this._storageManager = this._authenticationClient.getStorageManager();
|
|
2709
|
-
}
|
|
2710
|
-
async refreshAccessTokenAutomatically(authenticationHelper) {
|
|
2711
|
-
const shouldRefreshAutomatically = (await this._storageManager.getConfigData())?.periodicTokenRefresh ?? false;
|
|
2712
|
-
if (!shouldRefreshAutomatically) {
|
|
2713
|
-
return;
|
|
2714
|
-
}
|
|
2715
|
-
const sessionData = await this._storageManager.getSessionData();
|
|
2716
|
-
if (sessionData.refresh_token) {
|
|
2717
|
-
const expiryTime = parseInt(sessionData.expires_in);
|
|
2718
|
-
const time = expiryTime <= 10 ? expiryTime : expiryTime - 10;
|
|
2719
|
-
const timer = setTimeout(async () => {
|
|
2720
|
-
await authenticationHelper.refreshAccessToken();
|
|
2721
|
-
}, time * 1e3);
|
|
2722
|
-
await this._storageManager.setTemporaryDataParameter(
|
|
2723
|
-
import_javascript3.TokenConstants.Storage.StorageKeys.REFRESH_TOKEN_TIMER,
|
|
2724
|
-
JSON.stringify(timer)
|
|
2725
|
-
);
|
|
2726
|
-
}
|
|
2727
|
-
}
|
|
2728
|
-
async getRefreshTimeoutTimer() {
|
|
2729
|
-
if (await this._storageManager.getTemporaryDataParameter(import_javascript3.TokenConstants.Storage.StorageKeys.REFRESH_TOKEN_TIMER)) {
|
|
2730
|
-
return JSON.parse(
|
|
2731
|
-
await this._storageManager.getTemporaryDataParameter(
|
|
2732
|
-
import_javascript3.TokenConstants.Storage.StorageKeys.REFRESH_TOKEN_TIMER
|
|
2733
|
-
)
|
|
2734
|
-
);
|
|
2735
|
-
}
|
|
2736
|
-
return -1;
|
|
2737
|
-
}
|
|
2738
|
-
async clearRefreshTokenTimeout(timer) {
|
|
2739
|
-
if (timer) {
|
|
2740
|
-
clearTimeout(timer);
|
|
2741
|
-
return;
|
|
2742
|
-
}
|
|
2743
|
-
const refreshTimer = await this.getRefreshTimeoutTimer();
|
|
2744
|
-
if (refreshTimer !== -1) {
|
|
2745
|
-
clearTimeout(refreshTimer);
|
|
2746
|
-
}
|
|
2747
|
-
}
|
|
2748
|
-
};
|
|
2749
|
-
|
|
2750
|
-
// src/__legacy__/helpers/session-management-helper.ts
|
|
2751
|
-
var import_javascript4 = require("@asgardeo/javascript");
|
|
2752
|
-
var SessionManagementHelper = /* @__PURE__ */ (() => {
|
|
2753
|
-
let _clientID;
|
|
2754
|
-
let _checkSessionEndpoint;
|
|
2755
|
-
let _sessionState;
|
|
2756
|
-
let _interval;
|
|
2757
|
-
let _redirectURL;
|
|
2758
|
-
let _sessionRefreshInterval;
|
|
2759
|
-
let _signOut;
|
|
2760
|
-
let _sessionRefreshIntervalTimeout;
|
|
2761
|
-
let _checkSessionIntervalTimeout;
|
|
2762
|
-
let _storage;
|
|
2763
|
-
let _setSessionState;
|
|
2764
|
-
let _getSignInUrl;
|
|
2765
|
-
const initialize = (clientId, checkSessionEndpoint, getSessionState, interval, sessionRefreshInterval, redirectURL, getSignInUrl) => {
|
|
2766
|
-
_clientID = clientId;
|
|
2767
|
-
_checkSessionEndpoint = checkSessionEndpoint;
|
|
2768
|
-
_sessionState = getSessionState;
|
|
2769
|
-
_interval = interval;
|
|
2770
|
-
_redirectURL = redirectURL;
|
|
2771
|
-
_sessionRefreshInterval = sessionRefreshInterval;
|
|
2772
|
-
_getSignInUrl = getSignInUrl;
|
|
2773
|
-
if (_interval > -1) {
|
|
2774
|
-
initiateCheckSession();
|
|
2775
|
-
}
|
|
2776
|
-
if (_sessionRefreshInterval > -1) {
|
|
2777
|
-
sessionRefreshInterval = setInterval(() => {
|
|
2778
|
-
sendPromptNoneRequest();
|
|
2779
|
-
}, _sessionRefreshInterval * 1e3);
|
|
2780
|
-
}
|
|
2781
|
-
};
|
|
2782
|
-
const initiateCheckSession = async () => {
|
|
2783
|
-
if (!_checkSessionEndpoint || !_clientID || !_redirectURL) {
|
|
2784
|
-
return;
|
|
2785
|
-
}
|
|
2786
|
-
const OP_IFRAME2 = "opIFrame";
|
|
2787
|
-
async function checkSession() {
|
|
2788
|
-
const sessionState = await _sessionState();
|
|
2789
|
-
if (Boolean(_clientID) && Boolean(sessionState)) {
|
|
2790
|
-
const message = `${_clientID} ${sessionState}`;
|
|
2791
|
-
const rpIFrame2 = document.getElementById(RP_IFRAME);
|
|
2792
|
-
const opIframe2 = rpIFrame2?.contentDocument?.getElementById(OP_IFRAME2);
|
|
2793
|
-
const win = opIframe2.contentWindow;
|
|
2794
|
-
win?.postMessage(message, _checkSessionEndpoint);
|
|
2795
|
-
}
|
|
2796
|
-
}
|
|
2797
|
-
const rpIFrame = document.getElementById(RP_IFRAME);
|
|
2798
|
-
const opIframe = rpIFrame?.contentDocument?.getElementById(OP_IFRAME2);
|
|
2799
|
-
opIframe.src = _checkSessionEndpoint + "?client_id=" + _clientID + "&redirect_uri=" + _redirectURL;
|
|
2800
|
-
_checkSessionIntervalTimeout = setInterval(checkSession, _interval * 1e3);
|
|
2801
|
-
listenToResponseFromOPIFrame();
|
|
2802
|
-
};
|
|
2803
|
-
const reset = () => {
|
|
2804
|
-
clearInterval(_checkSessionIntervalTimeout);
|
|
2805
|
-
clearInterval(_sessionRefreshIntervalTimeout);
|
|
2806
|
-
};
|
|
2807
|
-
const listenToResponseFromOPIFrame = () => {
|
|
2808
|
-
async function receiveMessage(e) {
|
|
2809
|
-
const targetOrigin = _checkSessionEndpoint;
|
|
2810
|
-
if (!targetOrigin || targetOrigin?.indexOf(e.origin) < 0 || e?.data?.type === SET_SESSION_STATE_FROM_IFRAME) {
|
|
2811
|
-
return;
|
|
2812
|
-
}
|
|
2813
|
-
if (e.data === "unchanged") {
|
|
2814
|
-
} else if (e.data === "error") {
|
|
2815
|
-
window.location.href = await _signOut();
|
|
2816
|
-
} else if (e.data === "changed") {
|
|
2817
|
-
sendPromptNoneRequest();
|
|
2818
|
-
}
|
|
2819
|
-
}
|
|
2820
|
-
window?.addEventListener("message", receiveMessage, false);
|
|
2821
|
-
};
|
|
2822
|
-
const sendPromptNoneRequest = async () => {
|
|
2823
|
-
const rpIFrame = document.getElementById(RP_IFRAME);
|
|
2824
|
-
const promptNoneIFrame = rpIFrame?.contentDocument?.getElementById(
|
|
2825
|
-
PROMPT_NONE_IFRAME
|
|
2826
|
-
);
|
|
2827
|
-
if (SPAUtils.canSendPromptNoneRequest()) {
|
|
2828
|
-
SPAUtils.setPromptNoneRequestSent(true);
|
|
2829
|
-
const receiveMessageListener = (e) => {
|
|
2830
|
-
if (e?.data?.type === SET_SESSION_STATE_FROM_IFRAME) {
|
|
2831
|
-
_setSessionState(e?.data?.data ?? "");
|
|
2832
|
-
window?.removeEventListener("message", receiveMessageListener);
|
|
2833
|
-
}
|
|
2834
|
-
};
|
|
2835
|
-
if (_storage === "browserMemory" /* BrowserMemory */ || _storage === "webWorker" /* WebWorker */) {
|
|
2836
|
-
window?.addEventListener("message", receiveMessageListener);
|
|
2837
|
-
}
|
|
2838
|
-
const promptNoneURL = await _getSignInUrl({
|
|
2839
|
-
prompt: "none",
|
|
2840
|
-
response_mode: "query",
|
|
2841
|
-
state: STATE
|
|
2842
|
-
});
|
|
2843
|
-
promptNoneIFrame.src = promptNoneURL;
|
|
2844
|
-
}
|
|
2845
|
-
};
|
|
2846
|
-
const receivePromptNoneResponse = async (setSessionState) => {
|
|
2847
|
-
const state = new URL(window.location.href).searchParams.get(STATE_QUERY);
|
|
2848
|
-
const sessionState = new URL(window.location.href).searchParams.get(import_javascript4.OIDCRequestConstants.Params.SESSION_STATE);
|
|
2849
|
-
const parent = window.parent.parent;
|
|
2850
|
-
if (state !== null && (state.includes(STATE) || state.includes(SILENT_SIGN_IN_STATE))) {
|
|
2851
|
-
const code = new URL(window.location.href).searchParams.get("code");
|
|
2852
|
-
if (code !== null && code.length !== 0) {
|
|
2853
|
-
if (state.includes(SILENT_SIGN_IN_STATE)) {
|
|
2854
|
-
const message = {
|
|
2855
|
-
data: {
|
|
2856
|
-
code,
|
|
2857
|
-
sessionState: sessionState ?? "",
|
|
2858
|
-
state
|
|
2859
|
-
},
|
|
2860
|
-
type: CHECK_SESSION_SIGNED_IN
|
|
2861
|
-
};
|
|
2862
|
-
sessionStorage.setItem(INITIALIZED_SILENT_SIGN_IN, "false");
|
|
2863
|
-
parent.postMessage(message, parent.origin);
|
|
2864
|
-
SPAUtils.setPromptNoneRequestSent(false);
|
|
2865
|
-
window.location.href = "about:blank";
|
|
2866
|
-
await SPAUtils.waitTillPageRedirect();
|
|
2867
|
-
return true;
|
|
2868
|
-
}
|
|
2869
|
-
const newSessionState = new URL(window.location.href).searchParams.get("session_state");
|
|
2870
|
-
if (_storage === "localStorage" /* LocalStorage */ || _storage === "sessionStorage" /* SessionStorage */) {
|
|
2871
|
-
setSessionState && await setSessionState(newSessionState);
|
|
2872
|
-
} else {
|
|
2873
|
-
const message = {
|
|
2874
|
-
data: newSessionState ?? "",
|
|
2875
|
-
type: SET_SESSION_STATE_FROM_IFRAME
|
|
2876
|
-
};
|
|
2877
|
-
window?.parent?.parent?.postMessage(message);
|
|
2878
|
-
}
|
|
2879
|
-
SPAUtils.setPromptNoneRequestSent(false);
|
|
2880
|
-
window.location.href = "about:blank";
|
|
2881
|
-
await SPAUtils.waitTillPageRedirect();
|
|
2882
|
-
return true;
|
|
2883
|
-
} else {
|
|
2884
|
-
if (state.includes(SILENT_SIGN_IN_STATE)) {
|
|
2885
|
-
const message = {
|
|
2886
|
-
type: CHECK_SESSION_SIGNED_OUT
|
|
2887
|
-
};
|
|
2888
|
-
window.parent.parent.postMessage(message, parent.origin);
|
|
2889
|
-
SPAUtils.setPromptNoneRequestSent(false);
|
|
2890
|
-
window.location.href = "about:blank";
|
|
2891
|
-
await SPAUtils.waitTillPageRedirect();
|
|
2892
|
-
return true;
|
|
2893
|
-
}
|
|
2894
|
-
SPAUtils.setPromptNoneRequestSent(false);
|
|
2895
|
-
const signOutURL = await _signOut();
|
|
2896
|
-
await import_javascript4.AsgardeoAuthClient.clearSession();
|
|
2897
|
-
parent.location.href = signOutURL;
|
|
2898
|
-
window.location.href = "about:blank";
|
|
2899
|
-
await SPAUtils.waitTillPageRedirect();
|
|
2900
|
-
return true;
|
|
2383
|
+
SPAUtils.setPromptNoneRequestSent(false);
|
|
2384
|
+
const signOutURL = await _signOut();
|
|
2385
|
+
await import_javascript2.AsgardeoAuthClient.clearSession();
|
|
2386
|
+
parent.location.href = signOutURL;
|
|
2387
|
+
window.location.href = "about:blank";
|
|
2388
|
+
await SPAUtils.waitTillPageRedirect();
|
|
2389
|
+
return true;
|
|
2901
2390
|
}
|
|
2902
2391
|
}
|
|
2903
2392
|
return false;
|
|
@@ -2942,6 +2431,55 @@ var SessionManagementHelper = /* @__PURE__ */ (() => {
|
|
|
2942
2431
|
};
|
|
2943
2432
|
})();
|
|
2944
2433
|
|
|
2434
|
+
// src/__legacy__/helpers/spa-helper.ts
|
|
2435
|
+
var import_javascript3 = require("@asgardeo/javascript");
|
|
2436
|
+
var SPAHelper = class {
|
|
2437
|
+
constructor(authClient) {
|
|
2438
|
+
__publicField(this, "_authenticationClient");
|
|
2439
|
+
__publicField(this, "_storageManager");
|
|
2440
|
+
this._authenticationClient = authClient;
|
|
2441
|
+
this._storageManager = this._authenticationClient.getStorageManager();
|
|
2442
|
+
}
|
|
2443
|
+
async refreshAccessTokenAutomatically(authenticationHelper) {
|
|
2444
|
+
const shouldRefreshAutomatically = (await this._storageManager.getConfigData())?.periodicTokenRefresh ?? false;
|
|
2445
|
+
if (!shouldRefreshAutomatically) {
|
|
2446
|
+
return;
|
|
2447
|
+
}
|
|
2448
|
+
const sessionData = await this._storageManager.getSessionData();
|
|
2449
|
+
if (sessionData.refresh_token) {
|
|
2450
|
+
const expiryTime = parseInt(sessionData.expires_in);
|
|
2451
|
+
const time = expiryTime <= 10 ? expiryTime : expiryTime - 10;
|
|
2452
|
+
const timer = setTimeout(async () => {
|
|
2453
|
+
await authenticationHelper.refreshAccessToken();
|
|
2454
|
+
}, time * 1e3);
|
|
2455
|
+
await this._storageManager.setTemporaryDataParameter(
|
|
2456
|
+
import_javascript3.TokenConstants.Storage.StorageKeys.REFRESH_TOKEN_TIMER,
|
|
2457
|
+
JSON.stringify(timer)
|
|
2458
|
+
);
|
|
2459
|
+
}
|
|
2460
|
+
}
|
|
2461
|
+
async getRefreshTimeoutTimer() {
|
|
2462
|
+
if (await this._storageManager.getTemporaryDataParameter(import_javascript3.TokenConstants.Storage.StorageKeys.REFRESH_TOKEN_TIMER)) {
|
|
2463
|
+
return JSON.parse(
|
|
2464
|
+
await this._storageManager.getTemporaryDataParameter(
|
|
2465
|
+
import_javascript3.TokenConstants.Storage.StorageKeys.REFRESH_TOKEN_TIMER
|
|
2466
|
+
)
|
|
2467
|
+
);
|
|
2468
|
+
}
|
|
2469
|
+
return -1;
|
|
2470
|
+
}
|
|
2471
|
+
async clearRefreshTokenTimeout(timer) {
|
|
2472
|
+
if (timer) {
|
|
2473
|
+
clearTimeout(timer);
|
|
2474
|
+
return;
|
|
2475
|
+
}
|
|
2476
|
+
const refreshTimer = await this.getRefreshTimeoutTimer();
|
|
2477
|
+
if (refreshTimer !== -1) {
|
|
2478
|
+
clearTimeout(refreshTimer);
|
|
2479
|
+
}
|
|
2480
|
+
}
|
|
2481
|
+
};
|
|
2482
|
+
|
|
2945
2483
|
// src/__legacy__/http-client/clients/axios-http-client.ts
|
|
2946
2484
|
var import_axios = __toESM(require("axios"), 1);
|
|
2947
2485
|
|
|
@@ -3087,463 +2625,880 @@ var HttpClient = class {
|
|
|
3087
2625
|
enableHandler() {
|
|
3088
2626
|
HttpClient.isHandlerEnabled = true;
|
|
3089
2627
|
}
|
|
3090
|
-
/**
|
|
3091
|
-
* Disables the handler.
|
|
3092
|
-
*/
|
|
3093
|
-
disableHandler() {
|
|
3094
|
-
HttpClient.isHandlerEnabled = false;
|
|
2628
|
+
/**
|
|
2629
|
+
* Disables the handler.
|
|
2630
|
+
*/
|
|
2631
|
+
disableHandler() {
|
|
2632
|
+
HttpClient.isHandlerEnabled = false;
|
|
2633
|
+
}
|
|
2634
|
+
/**
|
|
2635
|
+
* Disables the handler for a given period of time.
|
|
2636
|
+
*
|
|
2637
|
+
* @param {number} timeout - Timeout in milliseconds.
|
|
2638
|
+
*/
|
|
2639
|
+
disableHandlerWithTimeout(timeout = HttpClient.DEFAULT_HANDLER_DISABLE_TIMEOUT) {
|
|
2640
|
+
HttpClient.isHandlerEnabled = false;
|
|
2641
|
+
setTimeout(() => {
|
|
2642
|
+
HttpClient.isHandlerEnabled = true;
|
|
2643
|
+
}, timeout);
|
|
2644
|
+
}
|
|
2645
|
+
setHttpRequestStartCallback(callback) {
|
|
2646
|
+
this.requestStartCallback = callback;
|
|
2647
|
+
}
|
|
2648
|
+
setHttpRequestSuccessCallback(callback) {
|
|
2649
|
+
this.requestSuccessCallback = callback;
|
|
2650
|
+
}
|
|
2651
|
+
setHttpRequestErrorCallback(callback) {
|
|
2652
|
+
this.requestErrorCallback = callback;
|
|
2653
|
+
}
|
|
2654
|
+
setHttpRequestFinishCallback(callback) {
|
|
2655
|
+
this.requestFinishCallback = callback;
|
|
2656
|
+
}
|
|
2657
|
+
};
|
|
2658
|
+
__publicField(HttpClient, "axiosInstance");
|
|
2659
|
+
__publicField(HttpClient, "clientInstance");
|
|
2660
|
+
__publicField(HttpClient, "isHandlerEnabled");
|
|
2661
|
+
__publicField(HttpClient, "DEFAULT_HANDLER_DISABLE_TIMEOUT", 1e3);
|
|
2662
|
+
HttpClient = __decorateClass([
|
|
2663
|
+
staticDecorator()
|
|
2664
|
+
], HttpClient);
|
|
2665
|
+
|
|
2666
|
+
// src/__legacy__/stores/local-store.ts
|
|
2667
|
+
var LocalStore = class {
|
|
2668
|
+
async setData(key, value) {
|
|
2669
|
+
localStorage.setItem(key, value);
|
|
2670
|
+
}
|
|
2671
|
+
async getData(key) {
|
|
2672
|
+
return localStorage.getItem(key) ?? "{}";
|
|
2673
|
+
}
|
|
2674
|
+
async removeData(key) {
|
|
2675
|
+
localStorage.removeItem(key);
|
|
2676
|
+
}
|
|
2677
|
+
};
|
|
2678
|
+
|
|
2679
|
+
// src/__legacy__/stores/memory-store.ts
|
|
2680
|
+
var MemoryStore = class {
|
|
2681
|
+
constructor() {
|
|
2682
|
+
__publicField(this, "_data");
|
|
2683
|
+
this._data = /* @__PURE__ */ new Map();
|
|
2684
|
+
}
|
|
2685
|
+
async setData(key, value) {
|
|
2686
|
+
this._data.set(key, value);
|
|
2687
|
+
}
|
|
2688
|
+
async getData(key) {
|
|
2689
|
+
return this._data?.get(key) ?? "{}";
|
|
2690
|
+
}
|
|
2691
|
+
async removeData(key) {
|
|
2692
|
+
this._data.delete(key);
|
|
2693
|
+
}
|
|
2694
|
+
};
|
|
2695
|
+
|
|
2696
|
+
// src/__legacy__/stores/session-store.ts
|
|
2697
|
+
var SessionStore = class {
|
|
2698
|
+
async setData(key, value) {
|
|
2699
|
+
sessionStorage.setItem(key, value);
|
|
2700
|
+
}
|
|
2701
|
+
async getData(key) {
|
|
2702
|
+
return sessionStorage.getItem(key) ?? "{}";
|
|
2703
|
+
}
|
|
2704
|
+
async removeData(key) {
|
|
2705
|
+
sessionStorage.removeItem(key);
|
|
3095
2706
|
}
|
|
2707
|
+
};
|
|
2708
|
+
|
|
2709
|
+
// src/__legacy__/utils/crypto-utils.ts
|
|
2710
|
+
var import_buffer = __toESM(require_buffer(), 1);
|
|
2711
|
+
var import_javascript4 = require("@asgardeo/javascript");
|
|
2712
|
+
var import_base64url = __toESM(require("base64url"), 1);
|
|
2713
|
+
var import_fast_sha256 = __toESM(require("fast-sha256"), 1);
|
|
2714
|
+
var import_jose = require("jose");
|
|
2715
|
+
var import_randombytes = __toESM(require_browser(), 1);
|
|
2716
|
+
var SPACryptoUtils = class {
|
|
3096
2717
|
/**
|
|
3097
|
-
*
|
|
2718
|
+
* Get URL encoded string.
|
|
3098
2719
|
*
|
|
3099
|
-
* @
|
|
2720
|
+
* @returns {string} base 64 url encoded value.
|
|
3100
2721
|
*/
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
setTimeout(() => {
|
|
3104
|
-
HttpClient.isHandlerEnabled = true;
|
|
3105
|
-
}, timeout);
|
|
2722
|
+
base64URLEncode(value) {
|
|
2723
|
+
return import_base64url.default.encode(value).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
3106
2724
|
}
|
|
3107
|
-
|
|
3108
|
-
|
|
2725
|
+
base64URLDecode(value) {
|
|
2726
|
+
return import_base64url.default.decode(value).toString();
|
|
3109
2727
|
}
|
|
3110
|
-
|
|
3111
|
-
|
|
2728
|
+
hashSha256(data) {
|
|
2729
|
+
return import_buffer.Buffer.from((0, import_fast_sha256.default)(new TextEncoder().encode(data)));
|
|
3112
2730
|
}
|
|
3113
|
-
|
|
3114
|
-
|
|
2731
|
+
generateRandomBytes(length) {
|
|
2732
|
+
return (0, import_randombytes.default)(length);
|
|
3115
2733
|
}
|
|
3116
|
-
|
|
3117
|
-
|
|
2734
|
+
verifyJwt(idToken, jwk, algorithms, clientId, issuer, subject, clockTolerance, validateJwtIssuer) {
|
|
2735
|
+
const jwtVerifyOptions = {
|
|
2736
|
+
algorithms,
|
|
2737
|
+
audience: clientId,
|
|
2738
|
+
clockTolerance,
|
|
2739
|
+
subject
|
|
2740
|
+
};
|
|
2741
|
+
if (validateJwtIssuer ?? true) {
|
|
2742
|
+
jwtVerifyOptions["issuer"] = issuer;
|
|
2743
|
+
}
|
|
2744
|
+
return (0, import_jose.jwtVerify)(
|
|
2745
|
+
idToken,
|
|
2746
|
+
(0, import_jose.createLocalJWKSet)({
|
|
2747
|
+
keys: [jwk]
|
|
2748
|
+
}),
|
|
2749
|
+
jwtVerifyOptions
|
|
2750
|
+
).then(() => {
|
|
2751
|
+
return Promise.resolve(true);
|
|
2752
|
+
}).catch((error) => {
|
|
2753
|
+
return Promise.reject(
|
|
2754
|
+
new import_javascript4.AsgardeoAuthException(
|
|
2755
|
+
"SPA-CRYPTO-UTILS-VJ-IV01",
|
|
2756
|
+
error?.reason ?? JSON.stringify(error),
|
|
2757
|
+
`${error?.code} ${error?.claim}`
|
|
2758
|
+
)
|
|
2759
|
+
);
|
|
2760
|
+
});
|
|
2761
|
+
}
|
|
2762
|
+
};
|
|
2763
|
+
|
|
2764
|
+
// src/__legacy__/clients/main-thread-client.ts
|
|
2765
|
+
var initiateStore = (store) => {
|
|
2766
|
+
switch (store) {
|
|
2767
|
+
case "localStorage" /* LocalStorage */:
|
|
2768
|
+
return new LocalStore();
|
|
2769
|
+
case "sessionStorage" /* SessionStorage */:
|
|
2770
|
+
return new SessionStore();
|
|
2771
|
+
case "browserMemory" /* BrowserMemory */:
|
|
2772
|
+
return new MemoryStore();
|
|
2773
|
+
default:
|
|
2774
|
+
return new SessionStore();
|
|
3118
2775
|
}
|
|
3119
2776
|
};
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
2777
|
+
var MainThreadClient = async (instanceID, config, getAuthHelper) => {
|
|
2778
|
+
const _store = initiateStore(config.storage);
|
|
2779
|
+
const _cryptoUtils = new SPACryptoUtils();
|
|
2780
|
+
const _authenticationClient = new import_javascript5.AsgardeoAuthClient();
|
|
2781
|
+
await _authenticationClient.initialize(config, _store, _cryptoUtils, instanceID);
|
|
2782
|
+
const _spaHelper = new SPAHelper(_authenticationClient);
|
|
2783
|
+
const _dataLayer = _authenticationClient.getStorageManager();
|
|
2784
|
+
const _sessionManagementHelper = await SessionManagementHelper(
|
|
2785
|
+
async () => _authenticationClient.getSignOutUrl(),
|
|
2786
|
+
config.storage ?? "sessionStorage" /* SessionStorage */,
|
|
2787
|
+
(sessionState) => _dataLayer.setSessionDataParameter(
|
|
2788
|
+
import_javascript5.OIDCRequestConstants.Params.SESSION_STATE,
|
|
2789
|
+
sessionState ?? ""
|
|
2790
|
+
)
|
|
2791
|
+
);
|
|
2792
|
+
const _authenticationHelper = getAuthHelper(_authenticationClient, _spaHelper);
|
|
2793
|
+
let _getSignOutURLFromSessionStorage = false;
|
|
2794
|
+
const _httpClient = HttpClient.getInstance();
|
|
2795
|
+
let _isHttpHandlerEnabled = true;
|
|
2796
|
+
let _httpErrorCallback;
|
|
2797
|
+
let _httpFinishCallback;
|
|
2798
|
+
const attachToken = async (request) => {
|
|
2799
|
+
await _authenticationHelper.attachTokenToRequestConfig(request);
|
|
2800
|
+
};
|
|
2801
|
+
_httpClient?.init && await _httpClient.init(true, attachToken);
|
|
2802
|
+
const setHttpRequestStartCallback = (callback) => {
|
|
2803
|
+
_httpClient?.setHttpRequestStartCallback && _httpClient.setHttpRequestStartCallback(callback);
|
|
2804
|
+
};
|
|
2805
|
+
const setHttpRequestSuccessCallback = (callback) => {
|
|
2806
|
+
_httpClient?.setHttpRequestSuccessCallback && _httpClient.setHttpRequestSuccessCallback(callback);
|
|
2807
|
+
};
|
|
2808
|
+
const setHttpRequestFinishCallback = (callback) => {
|
|
2809
|
+
_httpClient?.setHttpRequestFinishCallback && _httpClient.setHttpRequestFinishCallback(callback);
|
|
2810
|
+
};
|
|
2811
|
+
const setHttpRequestErrorCallback = (callback) => {
|
|
2812
|
+
_httpErrorCallback = callback;
|
|
2813
|
+
};
|
|
2814
|
+
const httpRequest = async (requestConfig) => _authenticationHelper.httpRequest(
|
|
2815
|
+
_httpClient,
|
|
2816
|
+
requestConfig,
|
|
2817
|
+
_isHttpHandlerEnabled,
|
|
2818
|
+
_httpErrorCallback,
|
|
2819
|
+
_httpFinishCallback
|
|
2820
|
+
);
|
|
2821
|
+
const httpRequestAll = async (requestConfigs) => _authenticationHelper.httpRequestAll(
|
|
2822
|
+
requestConfigs,
|
|
2823
|
+
_httpClient,
|
|
2824
|
+
_isHttpHandlerEnabled,
|
|
2825
|
+
_httpErrorCallback,
|
|
2826
|
+
_httpFinishCallback
|
|
2827
|
+
);
|
|
2828
|
+
const getHttpClient = () => _httpClient;
|
|
2829
|
+
const enableHttpHandler = () => {
|
|
2830
|
+
_authenticationHelper.enableHttpHandler(_httpClient);
|
|
2831
|
+
_isHttpHandlerEnabled = true;
|
|
2832
|
+
return true;
|
|
2833
|
+
};
|
|
2834
|
+
const disableHttpHandler = () => {
|
|
2835
|
+
_authenticationHelper.disableHttpHandler(_httpClient);
|
|
2836
|
+
_isHttpHandlerEnabled = false;
|
|
2837
|
+
return true;
|
|
2838
|
+
};
|
|
2839
|
+
const checkSession = async () => {
|
|
2840
|
+
const oidcEndpoints = await _authenticationClient.getOpenIDProviderEndpoints();
|
|
2841
|
+
const config2 = await _dataLayer.getConfigData();
|
|
2842
|
+
_authenticationHelper.initializeSessionManger(
|
|
2843
|
+
config2,
|
|
2844
|
+
oidcEndpoints,
|
|
2845
|
+
async () => (await _authenticationClient.getUserSession()).sessionState,
|
|
2846
|
+
async (params) => _authenticationClient.getSignInUrl(params),
|
|
2847
|
+
_sessionManagementHelper
|
|
2848
|
+
);
|
|
2849
|
+
};
|
|
2850
|
+
const shouldStopAuthn = async () => _sessionManagementHelper.receivePromptNoneResponse(async (sessionState) => {
|
|
2851
|
+
await _dataLayer.setSessionDataParameter(
|
|
2852
|
+
import_javascript5.OIDCRequestConstants.Params.SESSION_STATE,
|
|
2853
|
+
sessionState ?? ""
|
|
2854
|
+
);
|
|
2855
|
+
});
|
|
2856
|
+
const setSessionStatus = async (sessionStatus) => {
|
|
2857
|
+
await _dataLayer.setSessionStatus(sessionStatus);
|
|
2858
|
+
};
|
|
2859
|
+
const signIn = async (signInConfig, authorizationCode, sessionState, state, tokenRequestConfig) => {
|
|
2860
|
+
const basicUserInfo = await _authenticationHelper.handleSignIn(shouldStopAuthn, checkSession, void 0);
|
|
2861
|
+
if (basicUserInfo) {
|
|
2862
|
+
return basicUserInfo;
|
|
2863
|
+
}
|
|
2864
|
+
let resolvedAuthorizationCode;
|
|
2865
|
+
let resolvedSessionState;
|
|
2866
|
+
let resolvedState;
|
|
2867
|
+
let resolvedTokenRequestConfig = { params: {} };
|
|
2868
|
+
if (config?.responseMode === "form_post" && authorizationCode) {
|
|
2869
|
+
resolvedAuthorizationCode = authorizationCode;
|
|
2870
|
+
resolvedSessionState = sessionState ?? "";
|
|
2871
|
+
resolvedState = state ?? "";
|
|
2872
|
+
} else {
|
|
2873
|
+
resolvedAuthorizationCode = new URL(window.location.href).searchParams.get(import_javascript5.OIDCRequestConstants.Params.AUTHORIZATION_CODE) ?? "";
|
|
2874
|
+
resolvedSessionState = new URL(window.location.href).searchParams.get(import_javascript5.OIDCRequestConstants.Params.SESSION_STATE) ?? "";
|
|
2875
|
+
resolvedState = new URL(window.location.href).searchParams.get(import_javascript5.OIDCRequestConstants.Params.STATE) ?? "";
|
|
2876
|
+
SPAUtils.removeAuthorizationCode();
|
|
2877
|
+
}
|
|
2878
|
+
if (resolvedAuthorizationCode && resolvedState) {
|
|
2879
|
+
setSessionStatus("true");
|
|
2880
|
+
const storedTokenRequestConfig = await _dataLayer.getTemporaryDataParameter(TOKEN_REQUEST_CONFIG_KEY);
|
|
2881
|
+
if (storedTokenRequestConfig && typeof storedTokenRequestConfig === "string") {
|
|
2882
|
+
resolvedTokenRequestConfig = JSON.parse(storedTokenRequestConfig);
|
|
2883
|
+
}
|
|
2884
|
+
return requestAccessToken(
|
|
2885
|
+
resolvedAuthorizationCode,
|
|
2886
|
+
resolvedSessionState,
|
|
2887
|
+
resolvedState,
|
|
2888
|
+
resolvedTokenRequestConfig
|
|
2889
|
+
);
|
|
2890
|
+
}
|
|
2891
|
+
return _authenticationClient.getSignInUrl(signInConfig).then(async (url) => {
|
|
2892
|
+
if (config.storage === "browserMemory" /* BrowserMemory */ && config.enablePKCE) {
|
|
2893
|
+
const pkceKey = (0, import_javascript5.extractPkceStorageKeyFromState)(resolvedState);
|
|
2894
|
+
SPAUtils.setPKCE(pkceKey, await _authenticationClient.getPKCECode(resolvedState));
|
|
2895
|
+
}
|
|
2896
|
+
if (tokenRequestConfig) {
|
|
2897
|
+
_dataLayer.setTemporaryDataParameter(TOKEN_REQUEST_CONFIG_KEY, JSON.stringify(tokenRequestConfig));
|
|
2898
|
+
}
|
|
2899
|
+
if (signInConfig && signInConfig["response_mode"] === "direct") {
|
|
2900
|
+
const authorizeUrl = new URL(url);
|
|
2901
|
+
return (0, import_javascript5.initializeEmbeddedSignInFlow)({
|
|
2902
|
+
url: `${authorizeUrl.origin}${authorizeUrl.pathname}`,
|
|
2903
|
+
payload: Object.fromEntries(authorizeUrl.searchParams.entries())
|
|
2904
|
+
});
|
|
2905
|
+
}
|
|
2906
|
+
location.href = url;
|
|
2907
|
+
await SPAUtils.waitTillPageRedirect();
|
|
2908
|
+
return Promise.resolve({
|
|
2909
|
+
allowedScopes: "",
|
|
2910
|
+
displayName: "",
|
|
2911
|
+
email: "",
|
|
2912
|
+
sessionState: "",
|
|
2913
|
+
sub: "",
|
|
2914
|
+
tenantDomain: "",
|
|
2915
|
+
username: ""
|
|
2916
|
+
});
|
|
2917
|
+
});
|
|
2918
|
+
};
|
|
2919
|
+
const signOut = async () => {
|
|
2920
|
+
if (await _authenticationClient.isSignedIn() && !_getSignOutURLFromSessionStorage) {
|
|
2921
|
+
location.href = await _authenticationClient.getSignOutUrl();
|
|
2922
|
+
} else {
|
|
2923
|
+
location.href = SPAUtils.getSignOutUrl(config.clientId, instanceID);
|
|
2924
|
+
}
|
|
2925
|
+
_spaHelper.clearRefreshTokenTimeout();
|
|
2926
|
+
await _dataLayer.removeOIDCProviderMetaData();
|
|
2927
|
+
await _dataLayer.removeTemporaryData();
|
|
2928
|
+
await _dataLayer.removeSessionData();
|
|
2929
|
+
await _dataLayer.removeSessionStatus();
|
|
2930
|
+
await SPAUtils.waitTillPageRedirect();
|
|
2931
|
+
return true;
|
|
2932
|
+
};
|
|
2933
|
+
const enableRetrievingSignOutURLFromSession = (config2) => {
|
|
2934
|
+
if (config2.preventSignOutURLUpdate) {
|
|
2935
|
+
_getSignOutURLFromSessionStorage = true;
|
|
2936
|
+
}
|
|
2937
|
+
};
|
|
2938
|
+
const exchangeToken = async (config2) => _authenticationHelper.exchangeToken(config2, enableRetrievingSignOutURLFromSession);
|
|
2939
|
+
const refreshAccessToken = async () => {
|
|
2940
|
+
try {
|
|
2941
|
+
return await _authenticationHelper.refreshAccessToken(enableRetrievingSignOutURLFromSession);
|
|
2942
|
+
} catch (error) {
|
|
2943
|
+
return Promise.reject(error);
|
|
2944
|
+
}
|
|
2945
|
+
};
|
|
2946
|
+
const revokeAccessToken = async () => {
|
|
2947
|
+
const timer = await _spaHelper.getRefreshTimeoutTimer();
|
|
2948
|
+
return _authenticationClient.revokeAccessToken().then(() => {
|
|
2949
|
+
_sessionManagementHelper.reset();
|
|
2950
|
+
_spaHelper.clearRefreshTokenTimeout(timer);
|
|
2951
|
+
return Promise.resolve(true);
|
|
2952
|
+
}).catch((error) => Promise.reject(error));
|
|
2953
|
+
};
|
|
2954
|
+
const requestAccessToken = async (resolvedAuthorizationCode, resolvedSessionState, resolvedState, tokenRequestConfig) => _authenticationHelper.requestAccessToken(
|
|
2955
|
+
resolvedAuthorizationCode,
|
|
2956
|
+
resolvedSessionState,
|
|
2957
|
+
checkSession,
|
|
2958
|
+
void 0,
|
|
2959
|
+
resolvedState,
|
|
2960
|
+
tokenRequestConfig
|
|
2961
|
+
);
|
|
2962
|
+
const constructSilentSignInUrl = async (additionalParams = {}) => {
|
|
2963
|
+
const config2 = await _dataLayer.getConfigData();
|
|
2964
|
+
const urlString = await _authenticationClient.getSignInUrl({
|
|
2965
|
+
prompt: "none",
|
|
2966
|
+
state: SILENT_SIGN_IN_STATE,
|
|
2967
|
+
...additionalParams
|
|
2968
|
+
});
|
|
2969
|
+
const urlObject = new URL(urlString);
|
|
2970
|
+
urlObject.searchParams.set("response_mode", "query");
|
|
2971
|
+
const url = urlObject.toString();
|
|
2972
|
+
if (config2.storage === "browserMemory" /* BrowserMemory */ && config2.enablePKCE) {
|
|
2973
|
+
const state = urlObject.searchParams.get(import_javascript5.OIDCRequestConstants.Params.STATE);
|
|
2974
|
+
SPAUtils.setPKCE(
|
|
2975
|
+
(0, import_javascript5.extractPkceStorageKeyFromState)(state ?? ""),
|
|
2976
|
+
await _authenticationClient.getPKCECode(state ?? "")
|
|
2977
|
+
);
|
|
2978
|
+
}
|
|
2979
|
+
return url;
|
|
2980
|
+
};
|
|
2981
|
+
const trySignInSilently = async (additionalParams, tokenRequestConfig) => _authenticationHelper.trySignInSilently(
|
|
2982
|
+
constructSilentSignInUrl,
|
|
2983
|
+
requestAccessToken,
|
|
2984
|
+
_sessionManagementHelper,
|
|
2985
|
+
additionalParams,
|
|
2986
|
+
tokenRequestConfig
|
|
2987
|
+
);
|
|
2988
|
+
const getUser = async () => _authenticationHelper.getUser();
|
|
2989
|
+
const getDecodedIdToken = async () => _authenticationHelper.getDecodedIdToken();
|
|
2990
|
+
const getCrypto = async () => _authenticationHelper.getCrypto();
|
|
2991
|
+
const getIdToken = async () => _authenticationHelper.getIdToken();
|
|
2992
|
+
const getOpenIDProviderEndpoints = async () => _authenticationHelper.getOpenIDProviderEndpoints();
|
|
2993
|
+
const getAccessToken = async () => _authenticationHelper.getAccessToken();
|
|
2994
|
+
const getStorageManager = async () => _authenticationHelper.getStorageManager();
|
|
2995
|
+
const getConfigData = async () => _dataLayer.getConfigData();
|
|
2996
|
+
const isSignedIn = async () => _authenticationHelper.isSignedIn();
|
|
2997
|
+
const isSessionActive = async () => await _dataLayer.getSessionStatus() === "true";
|
|
2998
|
+
const reInitialize = async (newConfig) => {
|
|
2999
|
+
const existingConfig = await _dataLayer.getConfigData();
|
|
3000
|
+
const isCheckSessionIframeDifferent = !(existingConfig && existingConfig.endpoints && existingConfig.endpoints.checkSessionIframe && newConfig && newConfig.endpoints && newConfig.endpoints.checkSessionIframe && existingConfig.endpoints.checkSessionIframe === newConfig.endpoints.checkSessionIframe);
|
|
3001
|
+
const config2 = { ...existingConfig, ...newConfig };
|
|
3002
|
+
await _authenticationClient.reInitialize(config2);
|
|
3003
|
+
if (config2.enableOIDCSessionManagement && isCheckSessionIframeDifferent) {
|
|
3004
|
+
_sessionManagementHelper.reset();
|
|
3005
|
+
checkSession();
|
|
3006
|
+
}
|
|
3007
|
+
};
|
|
3008
|
+
return {
|
|
3009
|
+
disableHttpHandler,
|
|
3010
|
+
enableHttpHandler,
|
|
3011
|
+
getAccessToken,
|
|
3012
|
+
getUser,
|
|
3013
|
+
getConfigData,
|
|
3014
|
+
getCrypto,
|
|
3015
|
+
getStorageManager,
|
|
3016
|
+
getDecodedIdToken,
|
|
3017
|
+
getHttpClient,
|
|
3018
|
+
getIdToken,
|
|
3019
|
+
getOpenIDProviderEndpoints,
|
|
3020
|
+
httpRequest,
|
|
3021
|
+
httpRequestAll,
|
|
3022
|
+
isSignedIn,
|
|
3023
|
+
isSessionActive,
|
|
3024
|
+
refreshAccessToken,
|
|
3025
|
+
exchangeToken,
|
|
3026
|
+
revokeAccessToken,
|
|
3027
|
+
setHttpRequestErrorCallback,
|
|
3028
|
+
setHttpRequestFinishCallback,
|
|
3029
|
+
setHttpRequestStartCallback,
|
|
3030
|
+
setHttpRequestSuccessCallback,
|
|
3031
|
+
signIn,
|
|
3032
|
+
signOut,
|
|
3033
|
+
trySignInSilently,
|
|
3034
|
+
reInitialize
|
|
3035
|
+
};
|
|
3036
|
+
};
|
|
3127
3037
|
|
|
3128
|
-
// src/__legacy__/
|
|
3129
|
-
var
|
|
3130
|
-
async setData(key, value) {
|
|
3131
|
-
localStorage.setItem(key, value);
|
|
3132
|
-
}
|
|
3133
|
-
async getData(key) {
|
|
3134
|
-
return localStorage.getItem(key) ?? "{}";
|
|
3135
|
-
}
|
|
3136
|
-
async removeData(key) {
|
|
3137
|
-
localStorage.removeItem(key);
|
|
3138
|
-
}
|
|
3139
|
-
};
|
|
3038
|
+
// src/__legacy__/clients/web-worker-client.ts
|
|
3039
|
+
var import_javascript7 = require("@asgardeo/javascript");
|
|
3140
3040
|
|
|
3141
|
-
// src/__legacy__/
|
|
3142
|
-
var
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
this
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
this
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
this.
|
|
3041
|
+
// src/__legacy__/helpers/authentication-helper.ts
|
|
3042
|
+
var import_javascript6 = require("@asgardeo/javascript");
|
|
3043
|
+
var AuthenticationHelper = class {
|
|
3044
|
+
constructor(authClient, spaHelper) {
|
|
3045
|
+
__publicField(this, "_authenticationClient");
|
|
3046
|
+
__publicField(this, "_storageManager");
|
|
3047
|
+
__publicField(this, "_spaHelper");
|
|
3048
|
+
__publicField(this, "_instanceID");
|
|
3049
|
+
__publicField(this, "_isTokenRefreshing");
|
|
3050
|
+
this._authenticationClient = authClient;
|
|
3051
|
+
this._storageManager = this._authenticationClient.getStorageManager();
|
|
3052
|
+
this._spaHelper = spaHelper;
|
|
3053
|
+
this._instanceID = this._authenticationClient.getInstanceId();
|
|
3054
|
+
this._isTokenRefreshing = false;
|
|
3155
3055
|
}
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
// src/__legacy__/stores/session-store.ts
|
|
3159
|
-
var SessionStore = class {
|
|
3160
|
-
async setData(key, value) {
|
|
3161
|
-
sessionStorage.setItem(key, value);
|
|
3056
|
+
enableHttpHandler(httpClient) {
|
|
3057
|
+
httpClient?.enableHandler && httpClient.enableHandler();
|
|
3162
3058
|
}
|
|
3163
|
-
|
|
3164
|
-
|
|
3059
|
+
disableHttpHandler(httpClient) {
|
|
3060
|
+
httpClient?.disableHandler && httpClient.disableHandler();
|
|
3165
3061
|
}
|
|
3166
|
-
|
|
3167
|
-
|
|
3062
|
+
initializeSessionManger(config, oidcEndpoints, getSessionState, getAuthzURL, sessionManagementHelper) {
|
|
3063
|
+
sessionManagementHelper.initialize(
|
|
3064
|
+
config.clientId,
|
|
3065
|
+
oidcEndpoints.checkSessionIframe ?? "",
|
|
3066
|
+
getSessionState,
|
|
3067
|
+
config.checkSessionInterval ?? 3,
|
|
3068
|
+
config.sessionRefreshInterval ?? 300,
|
|
3069
|
+
config.afterSignInUrl,
|
|
3070
|
+
getAuthzURL
|
|
3071
|
+
);
|
|
3168
3072
|
}
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3073
|
+
async exchangeToken(config, enableRetrievingSignOutURLFromSession) {
|
|
3074
|
+
let useDefaultEndpoint = true;
|
|
3075
|
+
let matches = false;
|
|
3076
|
+
if (config?.tokenEndpoint) {
|
|
3077
|
+
useDefaultEndpoint = false;
|
|
3078
|
+
for (const baseUrl of [
|
|
3079
|
+
...(await this._storageManager.getConfigData())?.resourceServerURLs ?? [],
|
|
3080
|
+
config.baseUrl
|
|
3081
|
+
]) {
|
|
3082
|
+
if (baseUrl && config.tokenEndpoint?.startsWith(baseUrl)) {
|
|
3083
|
+
matches = true;
|
|
3084
|
+
break;
|
|
3085
|
+
}
|
|
3086
|
+
}
|
|
3087
|
+
}
|
|
3088
|
+
if (config.shouldReplayAfterRefresh) {
|
|
3089
|
+
this._storageManager.setTemporaryDataParameter(CUSTOM_GRANT_CONFIG, JSON.stringify(config));
|
|
3090
|
+
}
|
|
3091
|
+
if (useDefaultEndpoint || matches) {
|
|
3092
|
+
return this._authenticationClient.exchangeToken(config).then(async (response) => {
|
|
3093
|
+
if (enableRetrievingSignOutURLFromSession && typeof enableRetrievingSignOutURLFromSession === "function") {
|
|
3094
|
+
enableRetrievingSignOutURLFromSession(config);
|
|
3095
|
+
}
|
|
3096
|
+
if (config.returnsSession) {
|
|
3097
|
+
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
3098
|
+
return this._authenticationClient.getUser();
|
|
3099
|
+
} else {
|
|
3100
|
+
return response;
|
|
3101
|
+
}
|
|
3102
|
+
}).catch((error) => {
|
|
3103
|
+
return Promise.reject(error);
|
|
3104
|
+
});
|
|
3105
|
+
} else {
|
|
3106
|
+
return Promise.reject(
|
|
3107
|
+
new import_javascript6.AsgardeoAuthException(
|
|
3108
|
+
"SPA-MAIN_THREAD_CLIENT-RCG-IV01",
|
|
3109
|
+
"Request to the provided endpoint is prohibited.",
|
|
3110
|
+
"Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified token endpoint in this request cannot be found among the `resourceServerURLs`"
|
|
3111
|
+
)
|
|
3112
|
+
);
|
|
3113
|
+
}
|
|
3186
3114
|
}
|
|
3187
|
-
|
|
3188
|
-
|
|
3115
|
+
async getCustomGrantConfigData() {
|
|
3116
|
+
const configString = await this._storageManager.getTemporaryDataParameter(CUSTOM_GRANT_CONFIG);
|
|
3117
|
+
if (configString) {
|
|
3118
|
+
return JSON.parse(configString);
|
|
3119
|
+
} else {
|
|
3120
|
+
return null;
|
|
3121
|
+
}
|
|
3189
3122
|
}
|
|
3190
|
-
|
|
3191
|
-
|
|
3123
|
+
async refreshAccessToken(enableRetrievingSignOutURLFromSession) {
|
|
3124
|
+
try {
|
|
3125
|
+
await this._authenticationClient.refreshAccessToken();
|
|
3126
|
+
const customGrantConfig = await this.getCustomGrantConfigData();
|
|
3127
|
+
if (customGrantConfig) {
|
|
3128
|
+
await this.exchangeToken(customGrantConfig, enableRetrievingSignOutURLFromSession);
|
|
3129
|
+
}
|
|
3130
|
+
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
3131
|
+
return this._authenticationClient.getUser();
|
|
3132
|
+
} catch (error) {
|
|
3133
|
+
const refreshTokenError = {
|
|
3134
|
+
type: REFRESH_ACCESS_TOKEN_ERR0R
|
|
3135
|
+
};
|
|
3136
|
+
window.postMessage(refreshTokenError);
|
|
3137
|
+
return Promise.reject(error);
|
|
3138
|
+
}
|
|
3192
3139
|
}
|
|
3193
|
-
|
|
3194
|
-
|
|
3140
|
+
async retryFailedRequests(failedRequest) {
|
|
3141
|
+
const httpClient = failedRequest.httpClient;
|
|
3142
|
+
const requestConfig = failedRequest.requestConfig;
|
|
3143
|
+
const isHttpHandlerEnabled = failedRequest.isHttpHandlerEnabled;
|
|
3144
|
+
const httpErrorCallback = failedRequest.httpErrorCallback;
|
|
3145
|
+
const httpFinishCallback = failedRequest.httpFinishCallback;
|
|
3146
|
+
await SPAUtils.until(() => !this._isTokenRefreshing);
|
|
3147
|
+
try {
|
|
3148
|
+
const httpResponse = await httpClient.request(requestConfig);
|
|
3149
|
+
return Promise.resolve(httpResponse);
|
|
3150
|
+
} catch (error) {
|
|
3151
|
+
if (isHttpHandlerEnabled) {
|
|
3152
|
+
if (typeof httpErrorCallback === "function") {
|
|
3153
|
+
await httpErrorCallback(error);
|
|
3154
|
+
}
|
|
3155
|
+
if (typeof httpFinishCallback === "function") {
|
|
3156
|
+
httpFinishCallback();
|
|
3157
|
+
}
|
|
3158
|
+
}
|
|
3159
|
+
return Promise.reject(error);
|
|
3160
|
+
}
|
|
3195
3161
|
}
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
jwtVerifyOptions["issuer"] = issuer;
|
|
3162
|
+
async httpRequest(httpClient, requestConfig, isHttpHandlerEnabled, httpErrorCallback, httpFinishCallback, enableRetrievingSignOutURLFromSession) {
|
|
3163
|
+
let matches = false;
|
|
3164
|
+
const config = await this._storageManager.getConfigData();
|
|
3165
|
+
for (const baseUrl of [...await config?.resourceServerURLs ?? [], config.baseUrl]) {
|
|
3166
|
+
if (baseUrl && requestConfig?.url?.startsWith(baseUrl)) {
|
|
3167
|
+
matches = true;
|
|
3168
|
+
break;
|
|
3169
|
+
}
|
|
3205
3170
|
}
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3171
|
+
if (matches) {
|
|
3172
|
+
return httpClient.request(requestConfig).then((response) => {
|
|
3173
|
+
return Promise.resolve(response);
|
|
3174
|
+
}).catch(async (error) => {
|
|
3175
|
+
if (error?.response?.status === 401 || !error?.response) {
|
|
3176
|
+
if (this._isTokenRefreshing) {
|
|
3177
|
+
return this.retryFailedRequests({
|
|
3178
|
+
enableRetrievingSignOutURLFromSession,
|
|
3179
|
+
httpClient,
|
|
3180
|
+
httpErrorCallback,
|
|
3181
|
+
httpFinishCallback,
|
|
3182
|
+
isHttpHandlerEnabled,
|
|
3183
|
+
requestConfig
|
|
3184
|
+
});
|
|
3185
|
+
}
|
|
3186
|
+
this._isTokenRefreshing = true;
|
|
3187
|
+
let refreshAccessTokenResponse;
|
|
3188
|
+
try {
|
|
3189
|
+
refreshAccessTokenResponse = await this.refreshAccessToken(enableRetrievingSignOutURLFromSession);
|
|
3190
|
+
this._isTokenRefreshing = false;
|
|
3191
|
+
} catch (refreshError) {
|
|
3192
|
+
this._isTokenRefreshing = false;
|
|
3193
|
+
if (isHttpHandlerEnabled) {
|
|
3194
|
+
if (typeof httpErrorCallback === "function") {
|
|
3195
|
+
await httpErrorCallback({
|
|
3196
|
+
...error,
|
|
3197
|
+
code: ACCESS_TOKEN_INVALID
|
|
3198
|
+
});
|
|
3199
|
+
}
|
|
3200
|
+
if (typeof httpFinishCallback === "function") {
|
|
3201
|
+
httpFinishCallback();
|
|
3202
|
+
}
|
|
3203
|
+
}
|
|
3204
|
+
throw new import_javascript6.AsgardeoAuthException(
|
|
3205
|
+
"SPA-AUTH_HELPER-HR-SE01",
|
|
3206
|
+
refreshError?.name ?? "Refresh token request failed.",
|
|
3207
|
+
refreshError?.message ?? "An error occurred while trying to refresh the access token following a 401 response from the server."
|
|
3208
|
+
);
|
|
3209
|
+
}
|
|
3210
|
+
if (refreshAccessTokenResponse) {
|
|
3211
|
+
try {
|
|
3212
|
+
const httpResponse = await httpClient.request(requestConfig);
|
|
3213
|
+
return Promise.resolve(httpResponse);
|
|
3214
|
+
} catch (error2) {
|
|
3215
|
+
if (isHttpHandlerEnabled) {
|
|
3216
|
+
if (typeof httpErrorCallback === "function") {
|
|
3217
|
+
await httpErrorCallback(error2);
|
|
3218
|
+
}
|
|
3219
|
+
if (typeof httpFinishCallback === "function") {
|
|
3220
|
+
httpFinishCallback();
|
|
3221
|
+
}
|
|
3222
|
+
}
|
|
3223
|
+
return Promise.reject(error2);
|
|
3224
|
+
}
|
|
3225
|
+
}
|
|
3226
|
+
}
|
|
3227
|
+
if (isHttpHandlerEnabled) {
|
|
3228
|
+
if (typeof httpErrorCallback === "function") {
|
|
3229
|
+
await httpErrorCallback(error);
|
|
3230
|
+
}
|
|
3231
|
+
if (typeof httpFinishCallback === "function") {
|
|
3232
|
+
httpFinishCallback();
|
|
3233
|
+
}
|
|
3234
|
+
}
|
|
3235
|
+
return Promise.reject(error);
|
|
3236
|
+
});
|
|
3237
|
+
} else {
|
|
3215
3238
|
return Promise.reject(
|
|
3216
|
-
new
|
|
3217
|
-
"SPA-
|
|
3218
|
-
|
|
3219
|
-
|
|
3239
|
+
new import_javascript6.AsgardeoAuthException(
|
|
3240
|
+
"SPA-AUTH_HELPER-HR-IV02",
|
|
3241
|
+
"Request to the provided endpoint is prohibited.",
|
|
3242
|
+
"Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified endpoint in this request cannot be found among the `resourceServerURLs`"
|
|
3220
3243
|
)
|
|
3221
3244
|
);
|
|
3222
|
-
});
|
|
3223
|
-
}
|
|
3224
|
-
};
|
|
3225
|
-
|
|
3226
|
-
// src/__legacy__/clients/main-thread-client.ts
|
|
3227
|
-
var initiateStore = (store) => {
|
|
3228
|
-
switch (store) {
|
|
3229
|
-
case "localStorage" /* LocalStorage */:
|
|
3230
|
-
return new LocalStore();
|
|
3231
|
-
case "sessionStorage" /* SessionStorage */:
|
|
3232
|
-
return new SessionStore();
|
|
3233
|
-
case "browserMemory" /* BrowserMemory */:
|
|
3234
|
-
return new MemoryStore();
|
|
3235
|
-
default:
|
|
3236
|
-
return new SessionStore();
|
|
3237
|
-
}
|
|
3238
|
-
};
|
|
3239
|
-
var MainThreadClient = async (instanceID, config, getAuthHelper) => {
|
|
3240
|
-
const _store = initiateStore(config.storage);
|
|
3241
|
-
const _cryptoUtils = new SPACryptoUtils();
|
|
3242
|
-
const _authenticationClient = new import_javascript6.AsgardeoAuthClient();
|
|
3243
|
-
await _authenticationClient.initialize(config, _store, _cryptoUtils, instanceID);
|
|
3244
|
-
const _spaHelper = new SPAHelper(_authenticationClient);
|
|
3245
|
-
const _dataLayer = _authenticationClient.getStorageManager();
|
|
3246
|
-
const _sessionManagementHelper = await SessionManagementHelper(
|
|
3247
|
-
async () => {
|
|
3248
|
-
return _authenticationClient.getSignOutUrl();
|
|
3249
|
-
},
|
|
3250
|
-
config.storage ?? "sessionStorage" /* SessionStorage */,
|
|
3251
|
-
(sessionState) => _dataLayer.setSessionDataParameter(
|
|
3252
|
-
import_javascript6.OIDCRequestConstants.Params.SESSION_STATE,
|
|
3253
|
-
sessionState ?? ""
|
|
3254
|
-
)
|
|
3255
|
-
);
|
|
3256
|
-
const _authenticationHelper = getAuthHelper(_authenticationClient, _spaHelper);
|
|
3257
|
-
let _getSignOutURLFromSessionStorage = false;
|
|
3258
|
-
const _httpClient = HttpClient.getInstance();
|
|
3259
|
-
let _isHttpHandlerEnabled = true;
|
|
3260
|
-
let _httpErrorCallback;
|
|
3261
|
-
let _httpFinishCallback;
|
|
3262
|
-
const attachToken = async (request) => {
|
|
3263
|
-
await _authenticationHelper.attachTokenToRequestConfig(request);
|
|
3264
|
-
};
|
|
3265
|
-
_httpClient?.init && await _httpClient.init(true, attachToken);
|
|
3266
|
-
const setHttpRequestStartCallback = (callback) => {
|
|
3267
|
-
_httpClient?.setHttpRequestStartCallback && _httpClient.setHttpRequestStartCallback(callback);
|
|
3268
|
-
};
|
|
3269
|
-
const setHttpRequestSuccessCallback = (callback) => {
|
|
3270
|
-
_httpClient?.setHttpRequestSuccessCallback && _httpClient.setHttpRequestSuccessCallback(callback);
|
|
3271
|
-
};
|
|
3272
|
-
const setHttpRequestFinishCallback = (callback) => {
|
|
3273
|
-
_httpClient?.setHttpRequestFinishCallback && _httpClient.setHttpRequestFinishCallback(callback);
|
|
3274
|
-
};
|
|
3275
|
-
const setHttpRequestErrorCallback = (callback) => {
|
|
3276
|
-
_httpErrorCallback = callback;
|
|
3277
|
-
};
|
|
3278
|
-
const httpRequest = async (requestConfig) => {
|
|
3279
|
-
return await _authenticationHelper.httpRequest(
|
|
3280
|
-
_httpClient,
|
|
3281
|
-
requestConfig,
|
|
3282
|
-
_isHttpHandlerEnabled,
|
|
3283
|
-
_httpErrorCallback,
|
|
3284
|
-
_httpFinishCallback
|
|
3285
|
-
);
|
|
3286
|
-
};
|
|
3287
|
-
const httpRequestAll = async (requestConfigs) => {
|
|
3288
|
-
return await _authenticationHelper.httpRequestAll(
|
|
3289
|
-
requestConfigs,
|
|
3290
|
-
_httpClient,
|
|
3291
|
-
_isHttpHandlerEnabled,
|
|
3292
|
-
_httpErrorCallback,
|
|
3293
|
-
_httpFinishCallback
|
|
3294
|
-
);
|
|
3295
|
-
};
|
|
3296
|
-
const getHttpClient = () => {
|
|
3297
|
-
return _httpClient;
|
|
3298
|
-
};
|
|
3299
|
-
const enableHttpHandler = () => {
|
|
3300
|
-
_authenticationHelper.enableHttpHandler(_httpClient);
|
|
3301
|
-
_isHttpHandlerEnabled = true;
|
|
3302
|
-
return true;
|
|
3303
|
-
};
|
|
3304
|
-
const disableHttpHandler = () => {
|
|
3305
|
-
_authenticationHelper.disableHttpHandler(_httpClient);
|
|
3306
|
-
_isHttpHandlerEnabled = false;
|
|
3307
|
-
return true;
|
|
3308
|
-
};
|
|
3309
|
-
const checkSession = async () => {
|
|
3310
|
-
const oidcEndpoints = await _authenticationClient.getOpenIDProviderEndpoints();
|
|
3311
|
-
const config2 = await _dataLayer.getConfigData();
|
|
3312
|
-
_authenticationHelper.initializeSessionManger(
|
|
3313
|
-
config2,
|
|
3314
|
-
oidcEndpoints,
|
|
3315
|
-
async () => (await _authenticationClient.getUserSession()).sessionState,
|
|
3316
|
-
async (params) => _authenticationClient.getSignInUrl(params),
|
|
3317
|
-
_sessionManagementHelper
|
|
3318
|
-
);
|
|
3319
|
-
};
|
|
3320
|
-
const shouldStopAuthn = async () => {
|
|
3321
|
-
return await _sessionManagementHelper.receivePromptNoneResponse(async (sessionState) => {
|
|
3322
|
-
await _dataLayer.setSessionDataParameter(
|
|
3323
|
-
import_javascript6.OIDCRequestConstants.Params.SESSION_STATE,
|
|
3324
|
-
sessionState ?? ""
|
|
3325
|
-
);
|
|
3326
|
-
return;
|
|
3327
|
-
});
|
|
3328
|
-
};
|
|
3329
|
-
const setSessionStatus = async (sessionStatus) => {
|
|
3330
|
-
await _dataLayer.setSessionStatus(sessionStatus);
|
|
3331
|
-
};
|
|
3332
|
-
const signIn = async (signInConfig, authorizationCode, sessionState, state, tokenRequestConfig) => {
|
|
3333
|
-
if (signInConfig["flow"]) {
|
|
3334
|
-
return (0, import_javascript6.handleApplicationNativeAuthentication)({
|
|
3335
|
-
url: signInConfig["flow"]["requestConfig"]["url"],
|
|
3336
|
-
payload: signInConfig["flow"]["payload"]
|
|
3337
|
-
});
|
|
3338
3245
|
}
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
let
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
resolvedSessionState = sessionState ?? "";
|
|
3350
|
-
resolvedState = state ?? "";
|
|
3351
|
-
} else {
|
|
3352
|
-
resolvedAuthorizationCode = new URL(window.location.href).searchParams.get(import_javascript6.OIDCRequestConstants.Params.AUTHORIZATION_CODE) ?? "";
|
|
3353
|
-
resolvedSessionState = new URL(window.location.href).searchParams.get(import_javascript6.OIDCRequestConstants.Params.SESSION_STATE) ?? "";
|
|
3354
|
-
resolvedState = new URL(window.location.href).searchParams.get(import_javascript6.OIDCRequestConstants.Params.STATE) ?? "";
|
|
3355
|
-
SPAUtils.removeAuthorizationCode();
|
|
3356
|
-
}
|
|
3357
|
-
if (resolvedAuthorizationCode && resolvedState) {
|
|
3358
|
-
setSessionStatus("true");
|
|
3359
|
-
const storedTokenRequestConfig = await _dataLayer.getTemporaryDataParameter(TOKEN_REQUEST_CONFIG_KEY);
|
|
3360
|
-
if (storedTokenRequestConfig && typeof storedTokenRequestConfig === "string") {
|
|
3361
|
-
resolvedTokenRequestConfig = JSON.parse(storedTokenRequestConfig);
|
|
3246
|
+
}
|
|
3247
|
+
async httpRequestAll(requestConfigs, httpClient, isHttpHandlerEnabled, httpErrorCallback, httpFinishCallback) {
|
|
3248
|
+
let matches = true;
|
|
3249
|
+
const config = await this._storageManager.getConfigData();
|
|
3250
|
+
for (const requestConfig of requestConfigs) {
|
|
3251
|
+
let urlMatches = false;
|
|
3252
|
+
for (const baseUrl of [...(await config)?.resourceServerURLs ?? [], config.baseUrl]) {
|
|
3253
|
+
if (baseUrl && requestConfig.url?.startsWith(baseUrl)) {
|
|
3254
|
+
urlMatches = true;
|
|
3255
|
+
break;
|
|
3362
3256
|
}
|
|
3363
|
-
return requestAccessToken(
|
|
3364
|
-
resolvedAuthorizationCode,
|
|
3365
|
-
resolvedSessionState,
|
|
3366
|
-
resolvedState,
|
|
3367
|
-
resolvedTokenRequestConfig
|
|
3368
|
-
);
|
|
3369
3257
|
}
|
|
3370
|
-
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3258
|
+
if (!urlMatches) {
|
|
3259
|
+
matches = false;
|
|
3260
|
+
break;
|
|
3261
|
+
}
|
|
3262
|
+
}
|
|
3263
|
+
const requests = [];
|
|
3264
|
+
if (matches) {
|
|
3265
|
+
requestConfigs.forEach((request) => {
|
|
3266
|
+
requests.push(httpClient.request(request));
|
|
3267
|
+
});
|
|
3268
|
+
return httpClient?.all && httpClient.all(requests).then((responses) => {
|
|
3269
|
+
return Promise.resolve(responses);
|
|
3270
|
+
}).catch(async (error) => {
|
|
3271
|
+
if (error?.response?.status === 401 || !error?.response) {
|
|
3272
|
+
let refreshTokenResponse;
|
|
3273
|
+
try {
|
|
3274
|
+
refreshTokenResponse = await this._authenticationClient.refreshAccessToken();
|
|
3275
|
+
} catch (refreshError) {
|
|
3276
|
+
if (isHttpHandlerEnabled) {
|
|
3277
|
+
if (typeof httpErrorCallback === "function") {
|
|
3278
|
+
await httpErrorCallback({
|
|
3279
|
+
...error,
|
|
3280
|
+
code: ACCESS_TOKEN_INVALID
|
|
3281
|
+
});
|
|
3282
|
+
}
|
|
3283
|
+
if (typeof httpFinishCallback === "function") {
|
|
3284
|
+
httpFinishCallback();
|
|
3285
|
+
}
|
|
3286
|
+
}
|
|
3287
|
+
throw new import_javascript6.AsgardeoAuthException(
|
|
3288
|
+
"SPA-AUTH_HELPER-HRA-SE01",
|
|
3289
|
+
refreshError?.name ?? "Refresh token request failed.",
|
|
3290
|
+
refreshError?.message ?? "An error occurred while trying to refresh the access token following a 401 response from the server."
|
|
3291
|
+
);
|
|
3292
|
+
}
|
|
3293
|
+
if (refreshTokenResponse) {
|
|
3294
|
+
return httpClient.all && httpClient.all(requests).then((response) => {
|
|
3295
|
+
return Promise.resolve(response);
|
|
3296
|
+
}).catch(async (error2) => {
|
|
3297
|
+
if (isHttpHandlerEnabled) {
|
|
3298
|
+
if (typeof httpErrorCallback === "function") {
|
|
3299
|
+
await httpErrorCallback(error2);
|
|
3300
|
+
}
|
|
3301
|
+
if (typeof httpFinishCallback === "function") {
|
|
3302
|
+
httpFinishCallback();
|
|
3303
|
+
}
|
|
3304
|
+
}
|
|
3305
|
+
return Promise.reject(error2);
|
|
3306
|
+
});
|
|
3307
|
+
}
|
|
3374
3308
|
}
|
|
3375
|
-
if (
|
|
3376
|
-
|
|
3309
|
+
if (isHttpHandlerEnabled) {
|
|
3310
|
+
if (typeof httpErrorCallback === "function") {
|
|
3311
|
+
await httpErrorCallback(error);
|
|
3312
|
+
}
|
|
3313
|
+
if (typeof httpFinishCallback === "function") {
|
|
3314
|
+
httpFinishCallback();
|
|
3315
|
+
}
|
|
3377
3316
|
}
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3317
|
+
return Promise.reject(error);
|
|
3318
|
+
});
|
|
3319
|
+
} else {
|
|
3320
|
+
throw new import_javascript6.AsgardeoAuthException(
|
|
3321
|
+
"SPA-AUTH_HELPER-HRA-IV02",
|
|
3322
|
+
"Request to the provided endpoint is prohibited.",
|
|
3323
|
+
"Requests can only be sent to resource servers specified by the `resourceServerURLs` attribute while initializing the SDK. The specified endpoint in this request cannot be found among the `resourceServerURLs`"
|
|
3324
|
+
);
|
|
3325
|
+
}
|
|
3326
|
+
}
|
|
3327
|
+
async requestAccessToken(authorizationCode, sessionState, checkSession, pkce, state, tokenRequestConfig) {
|
|
3328
|
+
const config = await this._storageManager.getConfigData();
|
|
3329
|
+
if (config.storage === "browserMemory" /* BrowserMemory */ && config.enablePKCE && sessionState) {
|
|
3330
|
+
const pkce2 = SPAUtils.getPKCE((0, import_javascript6.extractPkceStorageKeyFromState)(sessionState));
|
|
3331
|
+
await this._authenticationClient.setPKCECode((0, import_javascript6.extractPkceStorageKeyFromState)(sessionState), pkce2);
|
|
3332
|
+
} else if (config.storage === "webWorker" /* WebWorker */ && pkce) {
|
|
3333
|
+
await this._authenticationClient.setPKCECode(pkce, state ?? "");
|
|
3334
|
+
}
|
|
3335
|
+
if (authorizationCode) {
|
|
3336
|
+
return this._authenticationClient.requestAccessToken(authorizationCode, sessionState ?? "", state ?? "", void 0, tokenRequestConfig).then(async () => {
|
|
3337
|
+
if (config.storage !== "webWorker" /* WebWorker */) {
|
|
3338
|
+
SPAUtils.setSignOutURL(await this._authenticationClient.getSignOutUrl(), config.clientId, this._instanceID);
|
|
3339
|
+
if (this._spaHelper) {
|
|
3340
|
+
this._spaHelper.clearRefreshTokenTimeout();
|
|
3341
|
+
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
3342
|
+
}
|
|
3343
|
+
if (checkSession && typeof checkSession === "function" && config.enableOIDCSessionManagement) {
|
|
3344
|
+
checkSession();
|
|
3345
|
+
}
|
|
3384
3346
|
} else {
|
|
3385
|
-
|
|
3347
|
+
if (this._spaHelper) {
|
|
3348
|
+
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
3349
|
+
}
|
|
3386
3350
|
}
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
displayName: "",
|
|
3391
|
-
email: "",
|
|
3392
|
-
sessionState: "",
|
|
3393
|
-
sub: "",
|
|
3394
|
-
tenantDomain: "",
|
|
3395
|
-
username: ""
|
|
3396
|
-
});
|
|
3351
|
+
return this._authenticationClient.getUser();
|
|
3352
|
+
}).catch((error) => {
|
|
3353
|
+
return Promise.reject(error);
|
|
3397
3354
|
});
|
|
3398
3355
|
}
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3416
|
-
|
|
3356
|
+
return Promise.reject(
|
|
3357
|
+
new import_javascript6.AsgardeoAuthException(
|
|
3358
|
+
"SPA-AUTH_HELPER-RAT1-NF01",
|
|
3359
|
+
"No authorization code.",
|
|
3360
|
+
"No authorization code was found."
|
|
3361
|
+
)
|
|
3362
|
+
);
|
|
3363
|
+
}
|
|
3364
|
+
async trySignInSilently(constructSilentSignInUrl, requestAccessToken, sessionManagementHelper, additionalParams, tokenRequestConfig) {
|
|
3365
|
+
if (SPAUtils.isInitializedSilentSignIn()) {
|
|
3366
|
+
await sessionManagementHelper.receivePromptNoneResponse();
|
|
3367
|
+
return Promise.resolve({
|
|
3368
|
+
allowedScopes: "",
|
|
3369
|
+
displayName: "",
|
|
3370
|
+
email: "",
|
|
3371
|
+
sessionState: "",
|
|
3372
|
+
sub: "",
|
|
3373
|
+
tenantDomain: "",
|
|
3374
|
+
username: ""
|
|
3375
|
+
});
|
|
3417
3376
|
}
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
const refreshAccessToken = async () => {
|
|
3377
|
+
const rpIFrame = document.getElementById(RP_IFRAME);
|
|
3378
|
+
const promptNoneIFrame = rpIFrame?.contentDocument?.getElementById(
|
|
3379
|
+
PROMPT_NONE_IFRAME
|
|
3380
|
+
);
|
|
3423
3381
|
try {
|
|
3424
|
-
|
|
3382
|
+
const url = await constructSilentSignInUrl(additionalParams);
|
|
3383
|
+
promptNoneIFrame.src = url;
|
|
3425
3384
|
} catch (error) {
|
|
3426
3385
|
return Promise.reject(error);
|
|
3427
3386
|
}
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
...additionalParams
|
|
3387
|
+
return new Promise((resolve, reject) => {
|
|
3388
|
+
const timer = setTimeout(() => {
|
|
3389
|
+
resolve(false);
|
|
3390
|
+
}, 1e4);
|
|
3391
|
+
const listenToPromptNoneIFrame = async (e) => {
|
|
3392
|
+
const data = e.data;
|
|
3393
|
+
if (data?.type == CHECK_SESSION_SIGNED_OUT) {
|
|
3394
|
+
window.removeEventListener("message", listenToPromptNoneIFrame);
|
|
3395
|
+
clearTimeout(timer);
|
|
3396
|
+
resolve(false);
|
|
3397
|
+
}
|
|
3398
|
+
if (data?.type == CHECK_SESSION_SIGNED_IN && data?.data?.code) {
|
|
3399
|
+
requestAccessToken(data?.data?.code, data?.data?.sessionState, data?.data?.state, tokenRequestConfig).then((response) => {
|
|
3400
|
+
window.removeEventListener("message", listenToPromptNoneIFrame);
|
|
3401
|
+
resolve(response);
|
|
3402
|
+
}).catch((error) => {
|
|
3403
|
+
window.removeEventListener("message", listenToPromptNoneIFrame);
|
|
3404
|
+
reject(error);
|
|
3405
|
+
}).finally(() => {
|
|
3406
|
+
clearTimeout(timer);
|
|
3407
|
+
});
|
|
3408
|
+
}
|
|
3409
|
+
};
|
|
3410
|
+
window.addEventListener("message", listenToPromptNoneIFrame);
|
|
3453
3411
|
});
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
const
|
|
3457
|
-
if (
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3412
|
+
}
|
|
3413
|
+
async handleSignIn(shouldStopAuthn, checkSession, tryRetrievingUserInfo) {
|
|
3414
|
+
const config = await this._storageManager.getConfigData();
|
|
3415
|
+
if (await shouldStopAuthn()) {
|
|
3416
|
+
return Promise.resolve({
|
|
3417
|
+
allowedScopes: "",
|
|
3418
|
+
displayName: "",
|
|
3419
|
+
email: "",
|
|
3420
|
+
sessionState: "",
|
|
3421
|
+
sub: "",
|
|
3422
|
+
tenantDomain: "",
|
|
3423
|
+
username: ""
|
|
3424
|
+
});
|
|
3463
3425
|
}
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
);
|
|
3474
|
-
};
|
|
3475
|
-
const getUser = async () => {
|
|
3476
|
-
return _authenticationHelper.getUser();
|
|
3477
|
-
};
|
|
3478
|
-
const getDecodedIdToken = async () => {
|
|
3479
|
-
return _authenticationHelper.getDecodedIdToken();
|
|
3480
|
-
};
|
|
3481
|
-
const getCrypto = async () => {
|
|
3482
|
-
return _authenticationHelper.getCrypto();
|
|
3483
|
-
};
|
|
3484
|
-
const getIdToken = async () => {
|
|
3485
|
-
return _authenticationHelper.getIdToken();
|
|
3486
|
-
};
|
|
3487
|
-
const getOpenIDProviderEndpoints = async () => {
|
|
3488
|
-
return _authenticationHelper.getOpenIDProviderEndpoints();
|
|
3489
|
-
};
|
|
3490
|
-
const getAccessToken = async () => {
|
|
3491
|
-
return _authenticationHelper.getAccessToken();
|
|
3492
|
-
};
|
|
3493
|
-
const getStorageManager = async () => {
|
|
3494
|
-
return _authenticationHelper.getStorageManager();
|
|
3495
|
-
};
|
|
3496
|
-
const getConfigData = async () => {
|
|
3497
|
-
return await _dataLayer.getConfigData();
|
|
3498
|
-
};
|
|
3499
|
-
const isSignedIn = async () => {
|
|
3500
|
-
return _authenticationHelper.isSignedIn();
|
|
3501
|
-
};
|
|
3502
|
-
const isSessionActive = async () => {
|
|
3503
|
-
return await _dataLayer.getSessionStatus() === "true";
|
|
3504
|
-
};
|
|
3505
|
-
const reInitialize = async (newConfig) => {
|
|
3506
|
-
const existingConfig = await _dataLayer.getConfigData();
|
|
3507
|
-
const isCheckSessionIframeDifferent = !(existingConfig && existingConfig.endpoints && existingConfig.endpoints.checkSessionIframe && newConfig && newConfig.endpoints && newConfig.endpoints.checkSessionIframe && existingConfig.endpoints.checkSessionIframe === newConfig.endpoints.checkSessionIframe);
|
|
3508
|
-
const config2 = { ...existingConfig, ...newConfig };
|
|
3509
|
-
await _authenticationClient.reInitialize(config2);
|
|
3510
|
-
if (config2.enableOIDCSessionManagement && isCheckSessionIframeDifferent) {
|
|
3511
|
-
_sessionManagementHelper.reset();
|
|
3512
|
-
checkSession();
|
|
3426
|
+
if (config.storage !== "webWorker" /* WebWorker */) {
|
|
3427
|
+
if (await this._authenticationClient.isSignedIn()) {
|
|
3428
|
+
this._spaHelper.clearRefreshTokenTimeout();
|
|
3429
|
+
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
3430
|
+
if (config.enableOIDCSessionManagement) {
|
|
3431
|
+
checkSession();
|
|
3432
|
+
}
|
|
3433
|
+
return Promise.resolve(await this._authenticationClient.getUser());
|
|
3434
|
+
}
|
|
3513
3435
|
}
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
|
|
3523
|
-
|
|
3524
|
-
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
3532
|
-
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3436
|
+
const error = new URL(window.location.href).searchParams.get(ERROR);
|
|
3437
|
+
const errorDescription = new URL(window.location.href).searchParams.get(ERROR_DESCRIPTION);
|
|
3438
|
+
if (error) {
|
|
3439
|
+
const url = new URL(window.location.href);
|
|
3440
|
+
url.searchParams.delete(ERROR);
|
|
3441
|
+
url.searchParams.delete(ERROR_DESCRIPTION);
|
|
3442
|
+
history.pushState(null, document.title, url.toString());
|
|
3443
|
+
throw new import_javascript6.AsgardeoAuthException("SPA-AUTH_HELPER-SI-SE01", error, errorDescription ?? "");
|
|
3444
|
+
}
|
|
3445
|
+
if (config.storage === "webWorker" /* WebWorker */ && tryRetrievingUserInfo) {
|
|
3446
|
+
const basicUserInfo = await tryRetrievingUserInfo();
|
|
3447
|
+
if (basicUserInfo) {
|
|
3448
|
+
return basicUserInfo;
|
|
3449
|
+
}
|
|
3450
|
+
}
|
|
3451
|
+
return Promise.resolve(void 0);
|
|
3452
|
+
}
|
|
3453
|
+
async attachTokenToRequestConfig(request) {
|
|
3454
|
+
const requestConfig = { attachToken: true, ...request };
|
|
3455
|
+
if (requestConfig.attachToken) {
|
|
3456
|
+
if (requestConfig.shouldAttachIDPAccessToken) {
|
|
3457
|
+
request.headers = {
|
|
3458
|
+
...request.headers,
|
|
3459
|
+
Authorization: `Bearer ${await this.getIDPAccessToken()}`
|
|
3460
|
+
};
|
|
3461
|
+
} else {
|
|
3462
|
+
request.headers = {
|
|
3463
|
+
...request.headers,
|
|
3464
|
+
Authorization: `Bearer ${await this.getAccessToken()}`
|
|
3465
|
+
};
|
|
3466
|
+
}
|
|
3467
|
+
}
|
|
3468
|
+
}
|
|
3469
|
+
async getUser() {
|
|
3470
|
+
return this._authenticationClient.getUser();
|
|
3471
|
+
}
|
|
3472
|
+
async getDecodedIdToken() {
|
|
3473
|
+
return this._authenticationClient.getDecodedIdToken();
|
|
3474
|
+
}
|
|
3475
|
+
async getDecodedIDPIDToken() {
|
|
3476
|
+
return this._authenticationClient.getDecodedIdToken();
|
|
3477
|
+
}
|
|
3478
|
+
async getCrypto() {
|
|
3479
|
+
return this._authenticationClient.getCrypto();
|
|
3480
|
+
}
|
|
3481
|
+
async getIdToken() {
|
|
3482
|
+
return this._authenticationClient.getIdToken();
|
|
3483
|
+
}
|
|
3484
|
+
async getOpenIDProviderEndpoints() {
|
|
3485
|
+
return this._authenticationClient.getOpenIDProviderEndpoints();
|
|
3486
|
+
}
|
|
3487
|
+
async getAccessToken() {
|
|
3488
|
+
return this._authenticationClient.getAccessToken();
|
|
3489
|
+
}
|
|
3490
|
+
async getIDPAccessToken() {
|
|
3491
|
+
return (await this._storageManager.getSessionData())?.access_token;
|
|
3492
|
+
}
|
|
3493
|
+
getStorageManager() {
|
|
3494
|
+
return this._storageManager;
|
|
3495
|
+
}
|
|
3496
|
+
async isSignedIn() {
|
|
3497
|
+
return this._authenticationClient.isSignedIn();
|
|
3498
|
+
}
|
|
3543
3499
|
};
|
|
3544
3500
|
|
|
3545
3501
|
// src/__legacy__/clients/web-worker-client.ts
|
|
3546
|
-
var import_javascript7 = require("@asgardeo/javascript");
|
|
3547
3502
|
var initiateStore2 = (store) => {
|
|
3548
3503
|
switch (store) {
|
|
3549
3504
|
case "localStorage" /* LocalStorage */:
|
|
@@ -5385,17 +5340,6 @@ var workerReceiver = (getAuthHelper) => {
|
|
|
5385
5340
|
};
|
|
5386
5341
|
};
|
|
5387
5342
|
|
|
5388
|
-
// src/constants/StyleConstants.ts
|
|
5389
|
-
var StyleConstants = class {
|
|
5390
|
-
constructor() {
|
|
5391
|
-
}
|
|
5392
|
-
};
|
|
5393
|
-
/**
|
|
5394
|
-
* CSS class prefix for out of the box components.
|
|
5395
|
-
*/
|
|
5396
|
-
__publicField(StyleConstants, "VENDOR_CSS_CLASS_PREFIX", "asgardeo");
|
|
5397
|
-
var StyleConstants_default = StyleConstants;
|
|
5398
|
-
|
|
5399
5343
|
// src/utils/hasAuthParamsInUrl.ts
|
|
5400
5344
|
var hasAuthParamsInUrl = (params = window.location.search) => {
|
|
5401
5345
|
const MATCHER = /[?&]code=[^&]+/;
|
|
@@ -5403,12 +5347,6 @@ var hasAuthParamsInUrl = (params = window.location.search) => {
|
|
|
5403
5347
|
};
|
|
5404
5348
|
var hasAuthParamsInUrl_default = hasAuthParamsInUrl;
|
|
5405
5349
|
|
|
5406
|
-
// src/utils/withVendorCSSClassPrefix.ts
|
|
5407
|
-
var withVendorCSSClassPrefix = (className) => {
|
|
5408
|
-
return `${StyleConstants_default.VENDOR_CSS_CLASS_PREFIX}-${className}`;
|
|
5409
|
-
};
|
|
5410
|
-
var withVendorCSSClassPrefix_default = withVendorCSSClassPrefix;
|
|
5411
|
-
|
|
5412
5350
|
// src/AsgardeoBrowserClient.ts
|
|
5413
5351
|
var import_javascript11 = require("@asgardeo/javascript");
|
|
5414
5352
|
var AsgardeoBrowserClient = class extends import_javascript11.AsgardeoJavaScriptClient {
|