@asgardeo/browser 0.0.1 → 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/README.md +3 -3
- package/dist/__legacy__/client.d.ts +34 -35
- package/dist/__legacy__/clients/main-thread-client.d.ts +4 -3
- package/dist/__legacy__/helpers/authentication-helper.d.ts +18 -18
- package/dist/__legacy__/helpers/session-management-helper.d.ts +2 -2
- package/dist/__legacy__/helpers/spa-helper.d.ts +1 -1
- package/dist/__legacy__/models/client-config.d.ts +3 -3
- package/dist/__legacy__/models/client.d.ts +29 -29
- package/dist/__legacy__/models/request-custom-grant.d.ts +2 -2
- package/dist/__legacy__/models/session-management-helper.d.ts +2 -2
- package/dist/__legacy__/models/sign-in.d.ts +2 -2
- package/dist/__legacy__/models/storage.d.ts +1 -1
- package/dist/__legacy__/models/web-worker.d.ts +17 -16
- package/dist/__legacy__/stores/local-store.d.ts +2 -2
- package/dist/__legacy__/stores/memory-store.d.ts +2 -2
- package/dist/__legacy__/stores/session-store.d.ts +2 -2
- package/dist/__legacy__/utils/crypto-utils.d.ts +1 -1
- package/dist/__legacy__/utils/spa-utils.d.ts +2 -2
- package/dist/cjs/index.js +1724 -1782
- package/dist/cjs/index.js.map +4 -4
- package/dist/index.d.ts +0 -2
- package/dist/index.js +1748 -1807
- package/dist/index.js.map +4 -4
- package/package.json +5 -5
- package/dist/constants/StyleConstants.d.ts +0 -28
- package/dist/utils/withVendorCSSClassPrefix.d.ts +0 -32
package/dist/cjs/index.js
CHANGED
|
@@ -1940,21 +1940,19 @@ __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);
|
|
1952
1950
|
|
|
1953
1951
|
// src/__legacy__/client.ts
|
|
1954
|
-
var
|
|
1952
|
+
var import_javascript8 = require("@asgardeo/javascript");
|
|
1955
1953
|
|
|
1956
|
-
// src/__legacy__/
|
|
1957
|
-
var
|
|
1954
|
+
// src/__legacy__/clients/main-thread-client.ts
|
|
1955
|
+
var import_javascript5 = require("@asgardeo/javascript");
|
|
1958
1956
|
|
|
1959
1957
|
// src/__legacy__/constants/messages-types.ts
|
|
1960
1958
|
var INIT = "init";
|
|
@@ -2024,6 +2022,9 @@ var STATE_QUERY = "state";
|
|
|
2024
2022
|
// src/__legacy__/constants/errors.ts
|
|
2025
2023
|
var ACCESS_TOKEN_INVALID = "Access token is invalid";
|
|
2026
2024
|
|
|
2025
|
+
// src/__legacy__/helpers/session-management-helper.ts
|
|
2026
|
+
var import_javascript2 = require("@asgardeo/javascript");
|
|
2027
|
+
|
|
2027
2028
|
// src/__legacy__/utils/message-utils.ts
|
|
2028
2029
|
var MessageUtils = class {
|
|
2029
2030
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
@@ -2079,15 +2080,15 @@ var _SPAUtils = class _SPAUtils {
|
|
|
2079
2080
|
static setPKCE(pkceKey, pkce) {
|
|
2080
2081
|
sessionStorage.setItem(pkceKey, pkce);
|
|
2081
2082
|
}
|
|
2082
|
-
static setSignOutURL(url,
|
|
2083
|
+
static setSignOutURL(url, clientId, instanceID) {
|
|
2083
2084
|
sessionStorage.setItem(
|
|
2084
|
-
`${import_javascript.OIDCRequestConstants.SignOut.Storage.StorageKeys.SIGN_OUT_URL}-instance_${instanceID}-${
|
|
2085
|
+
`${import_javascript.OIDCRequestConstants.SignOut.Storage.StorageKeys.SIGN_OUT_URL}-instance_${instanceID}-${clientId}`,
|
|
2085
2086
|
url
|
|
2086
2087
|
);
|
|
2087
2088
|
}
|
|
2088
|
-
static
|
|
2089
|
+
static getSignOutUrl(clientId, instanceID) {
|
|
2089
2090
|
return sessionStorage.getItem(
|
|
2090
|
-
`${import_javascript.OIDCRequestConstants.SignOut.Storage.StorageKeys.SIGN_OUT_URL}-instance_${instanceID}-${
|
|
2091
|
+
`${import_javascript.OIDCRequestConstants.SignOut.Storage.StorageKeys.SIGN_OUT_URL}-instance_${instanceID}-${clientId}`
|
|
2091
2092
|
) ?? "";
|
|
2092
2093
|
}
|
|
2093
2094
|
static removePKCE(pkceKey) {
|
|
@@ -2141,7 +2142,7 @@ var _SPAUtils = class _SPAUtils {
|
|
|
2141
2142
|
if (import_javascript.AsgardeoAuthClient.isSignOutSuccessful(window.location.href)) {
|
|
2142
2143
|
const newUrl = window.location.href.split("?")[0];
|
|
2143
2144
|
history.pushState({}, document.title, newUrl);
|
|
2144
|
-
await import_javascript.AsgardeoAuthClient.
|
|
2145
|
+
await import_javascript.AsgardeoAuthClient.clearSession();
|
|
2145
2146
|
return true;
|
|
2146
2147
|
}
|
|
2147
2148
|
return false;
|
|
@@ -2236,1664 +2237,1268 @@ __publicField(_SPAUtils, "until", (condition, timeout = 500) => {
|
|
|
2236
2237
|
});
|
|
2237
2238
|
var SPAUtils = _SPAUtils;
|
|
2238
2239
|
|
|
2239
|
-
// src/__legacy__/helpers/
|
|
2240
|
-
var
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
getSessionState,
|
|
2264
|
-
config.checkSessionInterval ?? 3,
|
|
2265
|
-
config.sessionRefreshInterval ?? 300,
|
|
2266
|
-
config.signInRedirectURL,
|
|
2267
|
-
getAuthzURL
|
|
2268
|
-
);
|
|
2269
|
-
}
|
|
2270
|
-
async requestCustomGrant(config, enableRetrievingSignOutURLFromSession) {
|
|
2271
|
-
let useDefaultEndpoint = true;
|
|
2272
|
-
let matches = false;
|
|
2273
|
-
if (config?.tokenEndpoint) {
|
|
2274
|
-
useDefaultEndpoint = false;
|
|
2275
|
-
for (const baseUrl of [
|
|
2276
|
-
...(await this._dataLayer.getConfigData())?.resourceServerURLs ?? [],
|
|
2277
|
-
config.baseUrl
|
|
2278
|
-
]) {
|
|
2279
|
-
if (baseUrl && config.tokenEndpoint?.startsWith(baseUrl)) {
|
|
2280
|
-
matches = true;
|
|
2281
|
-
break;
|
|
2282
|
-
}
|
|
2283
|
-
}
|
|
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();
|
|
2284
2264
|
}
|
|
2285
|
-
if (
|
|
2286
|
-
|
|
2265
|
+
if (_sessionRefreshInterval > -1) {
|
|
2266
|
+
sessionRefreshInterval = setInterval(() => {
|
|
2267
|
+
sendPromptNoneRequest();
|
|
2268
|
+
}, _sessionRefreshInterval * 1e3);
|
|
2287
2269
|
}
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
}
|
|
2293
|
-
if (config.returnsSession) {
|
|
2294
|
-
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
2295
|
-
return this._authenticationClient.getBasicUserInfo();
|
|
2296
|
-
} else {
|
|
2297
|
-
return response;
|
|
2298
|
-
}
|
|
2299
|
-
}).catch((error) => {
|
|
2300
|
-
return Promise.reject(error);
|
|
2301
|
-
});
|
|
2302
|
-
} else {
|
|
2303
|
-
return Promise.reject(
|
|
2304
|
-
new import_javascript2.AsgardeoAuthException(
|
|
2305
|
-
"SPA-MAIN_THREAD_CLIENT-RCG-IV01",
|
|
2306
|
-
"Request to the provided endpoint is prohibited.",
|
|
2307
|
-
"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`"
|
|
2308
|
-
)
|
|
2309
|
-
);
|
|
2270
|
+
};
|
|
2271
|
+
const initiateCheckSession = async () => {
|
|
2272
|
+
if (!_checkSessionEndpoint || !_clientID || !_redirectURL) {
|
|
2273
|
+
return;
|
|
2310
2274
|
}
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
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
|
+
}
|
|
2318
2285
|
}
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
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;
|
|
2301
|
+
}
|
|
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();
|
|
2326
2307
|
}
|
|
2327
|
-
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
2328
|
-
return this._authenticationClient.getBasicUserInfo();
|
|
2329
|
-
} catch (error) {
|
|
2330
|
-
const refreshTokenError = {
|
|
2331
|
-
type: REFRESH_ACCESS_TOKEN_ERR0R
|
|
2332
|
-
};
|
|
2333
|
-
window.postMessage(refreshTokenError);
|
|
2334
|
-
return Promise.reject(error);
|
|
2335
2308
|
}
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
const
|
|
2340
|
-
const
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
const
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
if (typeof httpErrorCallback === "function") {
|
|
2350
|
-
await httpErrorCallback(error);
|
|
2351
|
-
}
|
|
2352
|
-
if (typeof httpFinishCallback === "function") {
|
|
2353
|
-
httpFinishCallback();
|
|
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);
|
|
2354
2322
|
}
|
|
2323
|
+
};
|
|
2324
|
+
if (_storage === "browserMemory" /* BrowserMemory */ || _storage === "webWorker" /* WebWorker */) {
|
|
2325
|
+
window?.addEventListener("message", receiveMessageListener);
|
|
2355
2326
|
}
|
|
2356
|
-
|
|
2327
|
+
const promptNoneURL = await _getSignInUrl({
|
|
2328
|
+
prompt: "none",
|
|
2329
|
+
response_mode: "query",
|
|
2330
|
+
state: STATE
|
|
2331
|
+
});
|
|
2332
|
+
promptNoneIFrame.src = promptNoneURL;
|
|
2357
2333
|
}
|
|
2358
|
-
}
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
const
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
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;
|
|
2357
|
+
}
|
|
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;
|
|
2382
|
+
}
|
|
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;
|
|
2366
2390
|
}
|
|
2367
2391
|
}
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
}
|
|
2383
|
-
this._isTokenRefreshing = true;
|
|
2384
|
-
let refreshAccessTokenResponse;
|
|
2385
|
-
try {
|
|
2386
|
-
refreshAccessTokenResponse = await this.refreshAccessToken(enableRetrievingSignOutURLFromSession);
|
|
2387
|
-
this._isTokenRefreshing = false;
|
|
2388
|
-
} catch (refreshError) {
|
|
2389
|
-
this._isTokenRefreshing = false;
|
|
2390
|
-
if (isHttpHandlerEnabled) {
|
|
2391
|
-
if (typeof httpErrorCallback === "function") {
|
|
2392
|
-
await httpErrorCallback({
|
|
2393
|
-
...error,
|
|
2394
|
-
code: ACCESS_TOKEN_INVALID
|
|
2395
|
-
});
|
|
2396
|
-
}
|
|
2397
|
-
if (typeof httpFinishCallback === "function") {
|
|
2398
|
-
httpFinishCallback();
|
|
2399
|
-
}
|
|
2400
|
-
}
|
|
2401
|
-
throw new import_javascript2.AsgardeoAuthException(
|
|
2402
|
-
"SPA-AUTH_HELPER-HR-SE01",
|
|
2403
|
-
refreshError?.name ?? "Refresh token request failed.",
|
|
2404
|
-
refreshError?.message ?? "An error occurred while trying to refresh the access token following a 401 response from the server."
|
|
2405
|
-
);
|
|
2406
|
-
}
|
|
2407
|
-
if (refreshAccessTokenResponse) {
|
|
2408
|
-
try {
|
|
2409
|
-
const httpResponse = await httpClient.request(requestConfig);
|
|
2410
|
-
return Promise.resolve(httpResponse);
|
|
2411
|
-
} catch (error2) {
|
|
2412
|
-
if (isHttpHandlerEnabled) {
|
|
2413
|
-
if (typeof httpErrorCallback === "function") {
|
|
2414
|
-
await httpErrorCallback(error2);
|
|
2415
|
-
}
|
|
2416
|
-
if (typeof httpFinishCallback === "function") {
|
|
2417
|
-
httpFinishCallback();
|
|
2418
|
-
}
|
|
2419
|
-
}
|
|
2420
|
-
return Promise.reject(error2);
|
|
2421
|
-
}
|
|
2422
|
-
}
|
|
2423
|
-
}
|
|
2424
|
-
if (isHttpHandlerEnabled) {
|
|
2425
|
-
if (typeof httpErrorCallback === "function") {
|
|
2426
|
-
await httpErrorCallback(error);
|
|
2427
|
-
}
|
|
2428
|
-
if (typeof httpFinishCallback === "function") {
|
|
2429
|
-
httpFinishCallback();
|
|
2430
|
-
}
|
|
2431
|
-
}
|
|
2432
|
-
return Promise.reject(error);
|
|
2433
|
-
});
|
|
2434
|
-
} else {
|
|
2435
|
-
return Promise.reject(
|
|
2436
|
-
new import_javascript2.AsgardeoAuthException(
|
|
2437
|
-
"SPA-AUTH_HELPER-HR-IV02",
|
|
2438
|
-
"Request to the provided endpoint is prohibited.",
|
|
2439
|
-
"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`"
|
|
2440
|
-
)
|
|
2441
|
-
);
|
|
2442
|
-
}
|
|
2443
|
-
}
|
|
2444
|
-
async httpRequestAll(requestConfigs, httpClient, isHttpHandlerEnabled, httpErrorCallback, httpFinishCallback) {
|
|
2445
|
-
let matches = true;
|
|
2446
|
-
const config = await this._dataLayer.getConfigData();
|
|
2447
|
-
for (const requestConfig of requestConfigs) {
|
|
2448
|
-
let urlMatches = false;
|
|
2449
|
-
for (const baseUrl of [...(await config)?.resourceServerURLs ?? [], config.baseUrl]) {
|
|
2450
|
-
if (baseUrl && requestConfig.url?.startsWith(baseUrl)) {
|
|
2451
|
-
urlMatches = true;
|
|
2452
|
-
break;
|
|
2453
|
-
}
|
|
2392
|
+
return false;
|
|
2393
|
+
};
|
|
2394
|
+
return async (signOut, storage, setSessionState) => {
|
|
2395
|
+
let rpIFrame = document.createElement("iframe");
|
|
2396
|
+
rpIFrame.setAttribute("id", RP_IFRAME);
|
|
2397
|
+
rpIFrame.style.display = "none";
|
|
2398
|
+
let rpIframeLoaded = false;
|
|
2399
|
+
rpIFrame.onload = () => {
|
|
2400
|
+
rpIFrame = document.getElementById(RP_IFRAME);
|
|
2401
|
+
const rpDoc = rpIFrame?.contentDocument;
|
|
2402
|
+
const opIFrame = rpDoc?.createElement("iframe");
|
|
2403
|
+
if (opIFrame) {
|
|
2404
|
+
opIFrame.setAttribute("id", OP_IFRAME);
|
|
2405
|
+
opIFrame.style.display = "none";
|
|
2454
2406
|
}
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2407
|
+
const promptNoneIFrame = rpDoc?.createElement("iframe");
|
|
2408
|
+
if (promptNoneIFrame) {
|
|
2409
|
+
promptNoneIFrame.setAttribute("id", PROMPT_NONE_IFRAME);
|
|
2410
|
+
promptNoneIFrame.style.display = "none";
|
|
2458
2411
|
}
|
|
2412
|
+
opIFrame && rpIFrame?.contentDocument?.body?.appendChild(opIFrame);
|
|
2413
|
+
promptNoneIFrame && rpIFrame?.contentDocument?.body?.appendChild(promptNoneIFrame);
|
|
2414
|
+
rpIframeLoaded = true;
|
|
2415
|
+
};
|
|
2416
|
+
document?.body?.appendChild(rpIFrame);
|
|
2417
|
+
_signOut = signOut;
|
|
2418
|
+
_storage = storage;
|
|
2419
|
+
_setSessionState = setSessionState;
|
|
2420
|
+
const sleep = () => {
|
|
2421
|
+
return new Promise((resolve) => setTimeout(resolve, 1));
|
|
2422
|
+
};
|
|
2423
|
+
while (rpIframeLoaded === false) {
|
|
2424
|
+
await sleep();
|
|
2459
2425
|
}
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
return Promise.resolve(response);
|
|
2493
|
-
}).catch(async (error2) => {
|
|
2494
|
-
if (isHttpHandlerEnabled) {
|
|
2495
|
-
if (typeof httpErrorCallback === "function") {
|
|
2496
|
-
await httpErrorCallback(error2);
|
|
2497
|
-
}
|
|
2498
|
-
if (typeof httpFinishCallback === "function") {
|
|
2499
|
-
httpFinishCallback();
|
|
2500
|
-
}
|
|
2501
|
-
}
|
|
2502
|
-
return Promise.reject(error2);
|
|
2503
|
-
});
|
|
2504
|
-
}
|
|
2505
|
-
}
|
|
2506
|
-
if (isHttpHandlerEnabled) {
|
|
2507
|
-
if (typeof httpErrorCallback === "function") {
|
|
2508
|
-
await httpErrorCallback(error);
|
|
2509
|
-
}
|
|
2510
|
-
if (typeof httpFinishCallback === "function") {
|
|
2511
|
-
httpFinishCallback();
|
|
2512
|
-
}
|
|
2513
|
-
}
|
|
2514
|
-
return Promise.reject(error);
|
|
2515
|
-
});
|
|
2516
|
-
} else {
|
|
2517
|
-
throw new import_javascript2.AsgardeoAuthException(
|
|
2518
|
-
"SPA-AUTH_HELPER-HRA-IV02",
|
|
2519
|
-
"Request to the provided endpoint is prohibited.",
|
|
2520
|
-
"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`"
|
|
2426
|
+
return {
|
|
2427
|
+
initialize,
|
|
2428
|
+
receivePromptNoneResponse,
|
|
2429
|
+
reset
|
|
2430
|
+
};
|
|
2431
|
+
};
|
|
2432
|
+
})();
|
|
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)
|
|
2521
2458
|
);
|
|
2522
2459
|
}
|
|
2523
2460
|
}
|
|
2524
|
-
async
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
}
|
|
2532
|
-
if (authorizationCode) {
|
|
2533
|
-
return this._authenticationClient.requestAccessToken(authorizationCode, sessionState ?? "", state ?? "", void 0, tokenRequestConfig).then(async () => {
|
|
2534
|
-
if (config.storage !== "webWorker" /* WebWorker */) {
|
|
2535
|
-
SPAUtils.setSignOutURL(await this._authenticationClient.getSignOutURL(), config.clientID, this._instanceID);
|
|
2536
|
-
if (this._spaHelper) {
|
|
2537
|
-
this._spaHelper.clearRefreshTokenTimeout();
|
|
2538
|
-
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
2539
|
-
}
|
|
2540
|
-
if (checkSession && typeof checkSession === "function" && config.enableOIDCSessionManagement) {
|
|
2541
|
-
checkSession();
|
|
2542
|
-
}
|
|
2543
|
-
} else {
|
|
2544
|
-
if (this._spaHelper) {
|
|
2545
|
-
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
2546
|
-
}
|
|
2547
|
-
}
|
|
2548
|
-
return this._authenticationClient.getBasicUserInfo();
|
|
2549
|
-
}).catch((error) => {
|
|
2550
|
-
return Promise.reject(error);
|
|
2551
|
-
});
|
|
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
|
+
);
|
|
2552
2468
|
}
|
|
2553
|
-
return
|
|
2554
|
-
new import_javascript2.AsgardeoAuthException(
|
|
2555
|
-
"SPA-AUTH_HELPER-RAT1-NF01",
|
|
2556
|
-
"No authorization code.",
|
|
2557
|
-
"No authorization code was found."
|
|
2558
|
-
)
|
|
2559
|
-
);
|
|
2469
|
+
return -1;
|
|
2560
2470
|
}
|
|
2561
|
-
async
|
|
2562
|
-
if (
|
|
2563
|
-
|
|
2564
|
-
return
|
|
2565
|
-
allowedScopes: "",
|
|
2566
|
-
displayName: "",
|
|
2567
|
-
email: "",
|
|
2568
|
-
sessionState: "",
|
|
2569
|
-
sub: "",
|
|
2570
|
-
tenantDomain: "",
|
|
2571
|
-
username: ""
|
|
2572
|
-
});
|
|
2471
|
+
async clearRefreshTokenTimeout(timer) {
|
|
2472
|
+
if (timer) {
|
|
2473
|
+
clearTimeout(timer);
|
|
2474
|
+
return;
|
|
2573
2475
|
}
|
|
2574
|
-
const
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
);
|
|
2578
|
-
try {
|
|
2579
|
-
const url = await constructSilentSignInUrl(additionalParams);
|
|
2580
|
-
promptNoneIFrame.src = url;
|
|
2581
|
-
} catch (error) {
|
|
2582
|
-
return Promise.reject(error);
|
|
2476
|
+
const refreshTimer = await this.getRefreshTimeoutTimer();
|
|
2477
|
+
if (refreshTimer !== -1) {
|
|
2478
|
+
clearTimeout(refreshTimer);
|
|
2583
2479
|
}
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2480
|
+
}
|
|
2481
|
+
};
|
|
2482
|
+
|
|
2483
|
+
// src/__legacy__/http-client/clients/axios-http-client.ts
|
|
2484
|
+
var import_axios = __toESM(require("axios"), 1);
|
|
2485
|
+
|
|
2486
|
+
// src/__legacy__/http-client/helpers/decorators.ts
|
|
2487
|
+
function staticDecorator() {
|
|
2488
|
+
return (_constructor) => {
|
|
2489
|
+
};
|
|
2490
|
+
}
|
|
2491
|
+
|
|
2492
|
+
// src/__legacy__/http-client/clients/axios-http-client.ts
|
|
2493
|
+
var HttpClient = class {
|
|
2494
|
+
/**
|
|
2495
|
+
* Private constructor to avoid object instantiation from outside
|
|
2496
|
+
* the class.
|
|
2497
|
+
*
|
|
2498
|
+
* @hideconstructor
|
|
2499
|
+
*/
|
|
2500
|
+
constructor() {
|
|
2501
|
+
__publicField(this, "attachToken", () => Promise.resolve());
|
|
2502
|
+
__publicField(this, "requestStartCallback", () => null);
|
|
2503
|
+
__publicField(this, "requestSuccessCallback", () => null);
|
|
2504
|
+
__publicField(this, "requestErrorCallback", () => null);
|
|
2505
|
+
__publicField(this, "requestFinishCallback", () => null);
|
|
2506
|
+
this.init = this.init.bind(this);
|
|
2507
|
+
this.setHttpRequestErrorCallback = this.setHttpRequestErrorCallback.bind(this);
|
|
2508
|
+
this.setHttpRequestFinishCallback = this.setHttpRequestFinishCallback.bind(this);
|
|
2509
|
+
this.setHttpRequestStartCallback = this.setHttpRequestStartCallback.bind(this);
|
|
2510
|
+
this.setHttpRequestSuccessCallback = this.setHttpRequestSuccessCallback.bind(this);
|
|
2511
|
+
}
|
|
2512
|
+
/**
|
|
2513
|
+
* Returns an aggregated instance of type `HttpInstance` of `HttpClient`.
|
|
2514
|
+
*
|
|
2515
|
+
* @return {any}
|
|
2516
|
+
*/
|
|
2517
|
+
static getInstance() {
|
|
2518
|
+
if (this.axiosInstance) {
|
|
2519
|
+
return this.axiosInstance;
|
|
2520
|
+
}
|
|
2521
|
+
this.axiosInstance = import_axios.default.create({
|
|
2522
|
+
withCredentials: true
|
|
2608
2523
|
});
|
|
2524
|
+
if (!this.clientInstance) {
|
|
2525
|
+
this.clientInstance = new HttpClient();
|
|
2526
|
+
}
|
|
2527
|
+
this.axiosInstance.interceptors.request.use(async (request) => await this.clientInstance.requestHandler(request));
|
|
2528
|
+
this.axiosInstance.interceptors.response.use(
|
|
2529
|
+
(response) => this.clientInstance.successHandler(response),
|
|
2530
|
+
(error) => this.clientInstance.errorHandler(error)
|
|
2531
|
+
);
|
|
2532
|
+
this.axiosInstance.all = import_axios.default.all;
|
|
2533
|
+
this.axiosInstance.spread = import_axios.default.spread;
|
|
2534
|
+
this.axiosInstance.init = this.clientInstance.init;
|
|
2535
|
+
this.axiosInstance.enableHandler = this.clientInstance.enableHandler;
|
|
2536
|
+
this.axiosInstance.disableHandler = this.clientInstance.disableHandler;
|
|
2537
|
+
this.axiosInstance.disableHandlerWithTimeout = this.clientInstance.disableHandlerWithTimeout;
|
|
2538
|
+
this.axiosInstance.setHttpRequestStartCallback = this.clientInstance.setHttpRequestStartCallback;
|
|
2539
|
+
this.axiosInstance.setHttpRequestSuccessCallback = this.clientInstance.setHttpRequestSuccessCallback;
|
|
2540
|
+
this.axiosInstance.setHttpRequestErrorCallback = this.clientInstance.setHttpRequestErrorCallback;
|
|
2541
|
+
this.axiosInstance.setHttpRequestFinishCallback = this.clientInstance.setHttpRequestFinishCallback;
|
|
2542
|
+
return this.axiosInstance;
|
|
2609
2543
|
}
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2544
|
+
/**
|
|
2545
|
+
* Intercepts all the requests.
|
|
2546
|
+
* If the `isHandlerEnabled` flag is set to true, fires the `requestStartCallback`
|
|
2547
|
+
* and retrieves the access token from the server and attaches it to the request.
|
|
2548
|
+
* Else, just returns the original request.
|
|
2549
|
+
*
|
|
2550
|
+
* @param {HttpRequestConfig} request - Original request.
|
|
2551
|
+
* @return {HttpRequestConfig}
|
|
2552
|
+
*/
|
|
2553
|
+
async requestHandler(request) {
|
|
2554
|
+
await this.attachToken(request);
|
|
2555
|
+
if (request?.shouldEncodeToFormData) {
|
|
2556
|
+
const data = request?.data;
|
|
2557
|
+
const formData = new FormData();
|
|
2558
|
+
Object.keys(data).forEach((key) => {
|
|
2559
|
+
formData.append(key, data[key]);
|
|
2621
2560
|
});
|
|
2561
|
+
request.data = formData;
|
|
2622
2562
|
}
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
this.
|
|
2627
|
-
if (config.enableOIDCSessionManagement) {
|
|
2628
|
-
checkSession();
|
|
2629
|
-
}
|
|
2630
|
-
return Promise.resolve(await this._authenticationClient.getBasicUserInfo());
|
|
2563
|
+
request.startTimeInMs = (/* @__PURE__ */ new Date()).getTime();
|
|
2564
|
+
if (HttpClient.isHandlerEnabled) {
|
|
2565
|
+
if (this.requestStartCallback && typeof this.requestStartCallback === "function") {
|
|
2566
|
+
this.requestStartCallback(request);
|
|
2631
2567
|
}
|
|
2632
2568
|
}
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2569
|
+
return request;
|
|
2570
|
+
}
|
|
2571
|
+
/**
|
|
2572
|
+
* Handles response errors.
|
|
2573
|
+
* If the `isHandlerEnabled` flag is set to true, fires the `requestErrorCallback`
|
|
2574
|
+
* and the `requestFinishCallback` functions. Else, just returns the original error.
|
|
2575
|
+
*
|
|
2576
|
+
* @param {HttpError} error - Original error.
|
|
2577
|
+
* @return {HttpError}
|
|
2578
|
+
*/
|
|
2579
|
+
errorHandler(error) {
|
|
2580
|
+
if (HttpClient.isHandlerEnabled) {
|
|
2581
|
+
if (this.requestErrorCallback && typeof this.requestErrorCallback === "function") {
|
|
2582
|
+
this.requestErrorCallback(error);
|
|
2583
|
+
}
|
|
2584
|
+
if (this.requestFinishCallback && typeof this.requestFinishCallback === "function") {
|
|
2585
|
+
this.requestFinishCallback();
|
|
2646
2586
|
}
|
|
2647
2587
|
}
|
|
2648
|
-
|
|
2588
|
+
throw error;
|
|
2649
2589
|
}
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2590
|
+
/**
|
|
2591
|
+
* Handles response success.
|
|
2592
|
+
* If the `isHandlerEnabled` flag is set to true, fires the `requestSuccessCallback`
|
|
2593
|
+
* and the `requestFinishCallback` functions. Else, just returns the original response.
|
|
2594
|
+
*
|
|
2595
|
+
* @param {HttpResponse} response - Original response.
|
|
2596
|
+
* @return {HttpResponse}
|
|
2597
|
+
*/
|
|
2598
|
+
successHandler(response) {
|
|
2599
|
+
if (HttpClient.isHandlerEnabled) {
|
|
2600
|
+
if (this.requestSuccessCallback && typeof this.requestSuccessCallback === "function") {
|
|
2601
|
+
this.requestSuccessCallback(response);
|
|
2602
|
+
}
|
|
2603
|
+
if (this.requestFinishCallback && typeof this.requestFinishCallback === "function") {
|
|
2604
|
+
this.requestFinishCallback();
|
|
2663
2605
|
}
|
|
2664
2606
|
}
|
|
2607
|
+
return response;
|
|
2608
|
+
}
|
|
2609
|
+
/**
|
|
2610
|
+
* Initializes the Http client.
|
|
2611
|
+
*
|
|
2612
|
+
* @param isHandlerEnabled - Flag to toggle handler enablement.
|
|
2613
|
+
* @param requestStartCallback - Callback function to be triggered on request start.
|
|
2614
|
+
* @param requestSuccessCallback - Callback function to be triggered on request success.
|
|
2615
|
+
* @param requestErrorCallback - Callback function to be triggered on request error.
|
|
2616
|
+
* @param requestFinishCallback - Callback function to be triggered on request error.
|
|
2617
|
+
*/
|
|
2618
|
+
async init(isHandlerEnabled = true, attachToken) {
|
|
2619
|
+
HttpClient.isHandlerEnabled = isHandlerEnabled;
|
|
2620
|
+
this.attachToken = attachToken;
|
|
2665
2621
|
}
|
|
2666
|
-
|
|
2667
|
-
|
|
2622
|
+
/**
|
|
2623
|
+
* Enables the handler.
|
|
2624
|
+
*/
|
|
2625
|
+
enableHandler() {
|
|
2626
|
+
HttpClient.isHandlerEnabled = true;
|
|
2668
2627
|
}
|
|
2669
|
-
|
|
2670
|
-
|
|
2628
|
+
/**
|
|
2629
|
+
* Disables the handler.
|
|
2630
|
+
*/
|
|
2631
|
+
disableHandler() {
|
|
2632
|
+
HttpClient.isHandlerEnabled = false;
|
|
2671
2633
|
}
|
|
2672
|
-
|
|
2673
|
-
|
|
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);
|
|
2674
2644
|
}
|
|
2675
|
-
|
|
2676
|
-
|
|
2645
|
+
setHttpRequestStartCallback(callback) {
|
|
2646
|
+
this.requestStartCallback = callback;
|
|
2677
2647
|
}
|
|
2678
|
-
|
|
2679
|
-
|
|
2648
|
+
setHttpRequestSuccessCallback(callback) {
|
|
2649
|
+
this.requestSuccessCallback = callback;
|
|
2680
2650
|
}
|
|
2681
|
-
|
|
2682
|
-
|
|
2651
|
+
setHttpRequestErrorCallback(callback) {
|
|
2652
|
+
this.requestErrorCallback = callback;
|
|
2683
2653
|
}
|
|
2684
|
-
|
|
2685
|
-
|
|
2654
|
+
setHttpRequestFinishCallback(callback) {
|
|
2655
|
+
this.requestFinishCallback = callback;
|
|
2686
2656
|
}
|
|
2687
|
-
|
|
2688
|
-
|
|
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);
|
|
2689
2670
|
}
|
|
2690
|
-
|
|
2691
|
-
return
|
|
2671
|
+
async getData(key) {
|
|
2672
|
+
return localStorage.getItem(key) ?? "{}";
|
|
2692
2673
|
}
|
|
2693
|
-
async
|
|
2694
|
-
|
|
2674
|
+
async removeData(key) {
|
|
2675
|
+
localStorage.removeItem(key);
|
|
2695
2676
|
}
|
|
2696
2677
|
};
|
|
2697
2678
|
|
|
2698
|
-
// src/__legacy__/
|
|
2699
|
-
var
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
__publicField(this, "_dataLayer");
|
|
2704
|
-
this._authenticationClient = authClient;
|
|
2705
|
-
this._dataLayer = this._authenticationClient.getDataLayer();
|
|
2679
|
+
// src/__legacy__/stores/memory-store.ts
|
|
2680
|
+
var MemoryStore = class {
|
|
2681
|
+
constructor() {
|
|
2682
|
+
__publicField(this, "_data");
|
|
2683
|
+
this._data = /* @__PURE__ */ new Map();
|
|
2706
2684
|
}
|
|
2707
|
-
async
|
|
2708
|
-
|
|
2709
|
-
if (!shouldRefreshAutomatically) {
|
|
2710
|
-
return;
|
|
2711
|
-
}
|
|
2712
|
-
const sessionData = await this._dataLayer.getSessionData();
|
|
2713
|
-
if (sessionData.refresh_token) {
|
|
2714
|
-
const expiryTime = parseInt(sessionData.expires_in);
|
|
2715
|
-
const time = expiryTime <= 10 ? expiryTime : expiryTime - 10;
|
|
2716
|
-
const timer = setTimeout(async () => {
|
|
2717
|
-
await authenticationHelper.refreshAccessToken();
|
|
2718
|
-
}, time * 1e3);
|
|
2719
|
-
await this._dataLayer.setTemporaryDataParameter(
|
|
2720
|
-
import_javascript3.TokenConstants.Storage.StorageKeys.REFRESH_TOKEN_TIMER,
|
|
2721
|
-
JSON.stringify(timer)
|
|
2722
|
-
);
|
|
2723
|
-
}
|
|
2685
|
+
async setData(key, value) {
|
|
2686
|
+
this._data.set(key, value);
|
|
2724
2687
|
}
|
|
2725
|
-
async
|
|
2726
|
-
|
|
2727
|
-
return JSON.parse(
|
|
2728
|
-
await this._dataLayer.getTemporaryDataParameter(
|
|
2729
|
-
import_javascript3.TokenConstants.Storage.StorageKeys.REFRESH_TOKEN_TIMER
|
|
2730
|
-
)
|
|
2731
|
-
);
|
|
2732
|
-
}
|
|
2733
|
-
return -1;
|
|
2688
|
+
async getData(key) {
|
|
2689
|
+
return this._data?.get(key) ?? "{}";
|
|
2734
2690
|
}
|
|
2735
|
-
async
|
|
2736
|
-
|
|
2737
|
-
clearTimeout(timer);
|
|
2738
|
-
return;
|
|
2739
|
-
}
|
|
2740
|
-
const refreshTimer = await this.getRefreshTimeoutTimer();
|
|
2741
|
-
if (refreshTimer !== -1) {
|
|
2742
|
-
clearTimeout(refreshTimer);
|
|
2743
|
-
}
|
|
2691
|
+
async removeData(key) {
|
|
2692
|
+
this._data.delete(key);
|
|
2744
2693
|
}
|
|
2745
2694
|
};
|
|
2746
2695
|
|
|
2747
|
-
// src/__legacy__/
|
|
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);
|
|
2706
|
+
}
|
|
2707
|
+
};
|
|
2708
|
+
|
|
2709
|
+
// src/__legacy__/utils/crypto-utils.ts
|
|
2710
|
+
var import_buffer = __toESM(require_buffer(), 1);
|
|
2748
2711
|
var import_javascript4 = require("@asgardeo/javascript");
|
|
2749
|
-
var
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
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 {
|
|
2717
|
+
/**
|
|
2718
|
+
* Get URL encoded string.
|
|
2719
|
+
*
|
|
2720
|
+
* @returns {string} base 64 url encoded value.
|
|
2721
|
+
*/
|
|
2722
|
+
base64URLEncode(value) {
|
|
2723
|
+
return import_base64url.default.encode(value).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
2724
|
+
}
|
|
2725
|
+
base64URLDecode(value) {
|
|
2726
|
+
return import_base64url.default.decode(value).toString();
|
|
2727
|
+
}
|
|
2728
|
+
hashSha256(data) {
|
|
2729
|
+
return import_buffer.Buffer.from((0, import_fast_sha256.default)(new TextEncoder().encode(data)));
|
|
2730
|
+
}
|
|
2731
|
+
generateRandomBytes(length) {
|
|
2732
|
+
return (0, import_randombytes.default)(length);
|
|
2733
|
+
}
|
|
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;
|
|
2777
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();
|
|
2775
|
+
}
|
|
2776
|
+
};
|
|
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);
|
|
2778
2800
|
};
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
}
|
|
2783
|
-
const OP_IFRAME2 = "opIFrame";
|
|
2784
|
-
async function checkSession() {
|
|
2785
|
-
const sessionState = await _sessionState();
|
|
2786
|
-
if (Boolean(_clientID) && Boolean(sessionState)) {
|
|
2787
|
-
const message = `${_clientID} ${sessionState}`;
|
|
2788
|
-
const rpIFrame2 = document.getElementById(RP_IFRAME);
|
|
2789
|
-
const opIframe2 = rpIFrame2?.contentDocument?.getElementById(OP_IFRAME2);
|
|
2790
|
-
const win = opIframe2.contentWindow;
|
|
2791
|
-
win?.postMessage(message, _checkSessionEndpoint);
|
|
2792
|
-
}
|
|
2793
|
-
}
|
|
2794
|
-
const rpIFrame = document.getElementById(RP_IFRAME);
|
|
2795
|
-
const opIframe = rpIFrame?.contentDocument?.getElementById(OP_IFRAME2);
|
|
2796
|
-
opIframe.src = _checkSessionEndpoint + "?client_id=" + _clientID + "&redirect_uri=" + _redirectURL;
|
|
2797
|
-
_checkSessionIntervalTimeout = setInterval(checkSession, _interval * 1e3);
|
|
2798
|
-
listenToResponseFromOPIFrame();
|
|
2801
|
+
_httpClient?.init && await _httpClient.init(true, attachToken);
|
|
2802
|
+
const setHttpRequestStartCallback = (callback) => {
|
|
2803
|
+
_httpClient?.setHttpRequestStartCallback && _httpClient.setHttpRequestStartCallback(callback);
|
|
2799
2804
|
};
|
|
2800
|
-
const
|
|
2801
|
-
|
|
2802
|
-
clearInterval(_sessionRefreshIntervalTimeout);
|
|
2805
|
+
const setHttpRequestSuccessCallback = (callback) => {
|
|
2806
|
+
_httpClient?.setHttpRequestSuccessCallback && _httpClient.setHttpRequestSuccessCallback(callback);
|
|
2803
2807
|
};
|
|
2804
|
-
const
|
|
2805
|
-
|
|
2806
|
-
const targetOrigin = _checkSessionEndpoint;
|
|
2807
|
-
if (!targetOrigin || targetOrigin?.indexOf(e.origin) < 0 || e?.data?.type === SET_SESSION_STATE_FROM_IFRAME) {
|
|
2808
|
-
return;
|
|
2809
|
-
}
|
|
2810
|
-
if (e.data === "unchanged") {
|
|
2811
|
-
} else if (e.data === "error") {
|
|
2812
|
-
window.location.href = await _signOut();
|
|
2813
|
-
} else if (e.data === "changed") {
|
|
2814
|
-
sendPromptNoneRequest();
|
|
2815
|
-
}
|
|
2816
|
-
}
|
|
2817
|
-
window?.addEventListener("message", receiveMessage, false);
|
|
2808
|
+
const setHttpRequestFinishCallback = (callback) => {
|
|
2809
|
+
_httpClient?.setHttpRequestFinishCallback && _httpClient.setHttpRequestFinishCallback(callback);
|
|
2818
2810
|
};
|
|
2819
|
-
const
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
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
|
|
2823
2848
|
);
|
|
2824
|
-
if (SPAUtils.canSendPromptNoneRequest()) {
|
|
2825
|
-
SPAUtils.setPromptNoneRequestSent(true);
|
|
2826
|
-
const receiveMessageListener = (e) => {
|
|
2827
|
-
if (e?.data?.type === SET_SESSION_STATE_FROM_IFRAME) {
|
|
2828
|
-
_setSessionState(e?.data?.data ?? "");
|
|
2829
|
-
window?.removeEventListener("message", receiveMessageListener);
|
|
2830
|
-
}
|
|
2831
|
-
};
|
|
2832
|
-
if (_storage === "browserMemory" /* BrowserMemory */ || _storage === "webWorker" /* WebWorker */) {
|
|
2833
|
-
window?.addEventListener("message", receiveMessageListener);
|
|
2834
|
-
}
|
|
2835
|
-
const promptNoneURL = await _getAuthorizationURL({
|
|
2836
|
-
prompt: "none",
|
|
2837
|
-
response_mode: "query",
|
|
2838
|
-
state: STATE
|
|
2839
|
-
});
|
|
2840
|
-
promptNoneIFrame.src = promptNoneURL;
|
|
2841
|
-
}
|
|
2842
2849
|
};
|
|
2843
|
-
const
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
const message = {
|
|
2852
|
-
data: {
|
|
2853
|
-
code,
|
|
2854
|
-
sessionState: sessionState ?? "",
|
|
2855
|
-
state
|
|
2856
|
-
},
|
|
2857
|
-
type: CHECK_SESSION_SIGNED_IN
|
|
2858
|
-
};
|
|
2859
|
-
sessionStorage.setItem(INITIALIZED_SILENT_SIGN_IN, "false");
|
|
2860
|
-
parent.postMessage(message, parent.origin);
|
|
2861
|
-
SPAUtils.setPromptNoneRequestSent(false);
|
|
2862
|
-
window.location.href = "about:blank";
|
|
2863
|
-
await SPAUtils.waitTillPageRedirect();
|
|
2864
|
-
return true;
|
|
2865
|
-
}
|
|
2866
|
-
const newSessionState = new URL(window.location.href).searchParams.get("session_state");
|
|
2867
|
-
if (_storage === "localStorage" /* LocalStorage */ || _storage === "sessionStorage" /* SessionStorage */) {
|
|
2868
|
-
setSessionState && await setSessionState(newSessionState);
|
|
2869
|
-
} else {
|
|
2870
|
-
const message = {
|
|
2871
|
-
data: newSessionState ?? "",
|
|
2872
|
-
type: SET_SESSION_STATE_FROM_IFRAME
|
|
2873
|
-
};
|
|
2874
|
-
window?.parent?.parent?.postMessage(message);
|
|
2875
|
-
}
|
|
2876
|
-
SPAUtils.setPromptNoneRequestSent(false);
|
|
2877
|
-
window.location.href = "about:blank";
|
|
2878
|
-
await SPAUtils.waitTillPageRedirect();
|
|
2879
|
-
return true;
|
|
2880
|
-
} else {
|
|
2881
|
-
if (state.includes(SILENT_SIGN_IN_STATE)) {
|
|
2882
|
-
const message = {
|
|
2883
|
-
type: CHECK_SESSION_SIGNED_OUT
|
|
2884
|
-
};
|
|
2885
|
-
window.parent.parent.postMessage(message, parent.origin);
|
|
2886
|
-
SPAUtils.setPromptNoneRequestSent(false);
|
|
2887
|
-
window.location.href = "about:blank";
|
|
2888
|
-
await SPAUtils.waitTillPageRedirect();
|
|
2889
|
-
return true;
|
|
2890
|
-
}
|
|
2891
|
-
SPAUtils.setPromptNoneRequestSent(false);
|
|
2892
|
-
const signOutURL = await _signOut();
|
|
2893
|
-
await import_javascript4.AsgardeoAuthClient.clearUserSessionData();
|
|
2894
|
-
parent.location.href = signOutURL;
|
|
2895
|
-
window.location.href = "about:blank";
|
|
2896
|
-
await SPAUtils.waitTillPageRedirect();
|
|
2897
|
-
return true;
|
|
2898
|
-
}
|
|
2899
|
-
}
|
|
2900
|
-
return false;
|
|
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);
|
|
2901
2858
|
};
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
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));
|
|
2914
2895
|
}
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
promptNoneIFrame.setAttribute("id", PROMPT_NONE_IFRAME);
|
|
2918
|
-
promptNoneIFrame.style.display = "none";
|
|
2896
|
+
if (tokenRequestConfig) {
|
|
2897
|
+
_dataLayer.setTemporaryDataParameter(TOKEN_REQUEST_CONFIG_KEY, JSON.stringify(tokenRequestConfig));
|
|
2919
2898
|
}
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
return
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
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);
|
|
2933
2924
|
}
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
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;
|
|
2939
2932
|
};
|
|
2940
|
-
|
|
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
|
+
};
|
|
2941
3037
|
|
|
2942
|
-
// src/__legacy__/
|
|
3038
|
+
// src/__legacy__/clients/web-worker-client.ts
|
|
2943
3039
|
var import_javascript7 = require("@asgardeo/javascript");
|
|
2944
3040
|
|
|
2945
|
-
// src/__legacy__/
|
|
3041
|
+
// src/__legacy__/helpers/authentication-helper.ts
|
|
2946
3042
|
var import_javascript6 = require("@asgardeo/javascript");
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
/**
|
|
2960
|
-
* Private constructor to avoid object instantiation from outside
|
|
2961
|
-
* the class.
|
|
2962
|
-
*
|
|
2963
|
-
* @hideconstructor
|
|
2964
|
-
*/
|
|
2965
|
-
constructor() {
|
|
2966
|
-
__publicField(this, "attachToken", () => Promise.resolve());
|
|
2967
|
-
__publicField(this, "requestStartCallback", () => null);
|
|
2968
|
-
__publicField(this, "requestSuccessCallback", () => null);
|
|
2969
|
-
__publicField(this, "requestErrorCallback", () => null);
|
|
2970
|
-
__publicField(this, "requestFinishCallback", () => null);
|
|
2971
|
-
this.init = this.init.bind(this);
|
|
2972
|
-
this.setHttpRequestErrorCallback = this.setHttpRequestErrorCallback.bind(this);
|
|
2973
|
-
this.setHttpRequestFinishCallback = this.setHttpRequestFinishCallback.bind(this);
|
|
2974
|
-
this.setHttpRequestStartCallback = this.setHttpRequestStartCallback.bind(this);
|
|
2975
|
-
this.setHttpRequestSuccessCallback = this.setHttpRequestSuccessCallback.bind(this);
|
|
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;
|
|
2976
3055
|
}
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
*
|
|
2980
|
-
* @return {any}
|
|
2981
|
-
*/
|
|
2982
|
-
static getInstance() {
|
|
2983
|
-
if (this.axiosInstance) {
|
|
2984
|
-
return this.axiosInstance;
|
|
2985
|
-
}
|
|
2986
|
-
this.axiosInstance = import_axios.default.create({
|
|
2987
|
-
withCredentials: true
|
|
2988
|
-
});
|
|
2989
|
-
if (!this.clientInstance) {
|
|
2990
|
-
this.clientInstance = new HttpClient();
|
|
2991
|
-
}
|
|
2992
|
-
this.axiosInstance.interceptors.request.use(async (request) => await this.clientInstance.requestHandler(request));
|
|
2993
|
-
this.axiosInstance.interceptors.response.use(
|
|
2994
|
-
(response) => this.clientInstance.successHandler(response),
|
|
2995
|
-
(error) => this.clientInstance.errorHandler(error)
|
|
2996
|
-
);
|
|
2997
|
-
this.axiosInstance.all = import_axios.default.all;
|
|
2998
|
-
this.axiosInstance.spread = import_axios.default.spread;
|
|
2999
|
-
this.axiosInstance.init = this.clientInstance.init;
|
|
3000
|
-
this.axiosInstance.enableHandler = this.clientInstance.enableHandler;
|
|
3001
|
-
this.axiosInstance.disableHandler = this.clientInstance.disableHandler;
|
|
3002
|
-
this.axiosInstance.disableHandlerWithTimeout = this.clientInstance.disableHandlerWithTimeout;
|
|
3003
|
-
this.axiosInstance.setHttpRequestStartCallback = this.clientInstance.setHttpRequestStartCallback;
|
|
3004
|
-
this.axiosInstance.setHttpRequestSuccessCallback = this.clientInstance.setHttpRequestSuccessCallback;
|
|
3005
|
-
this.axiosInstance.setHttpRequestErrorCallback = this.clientInstance.setHttpRequestErrorCallback;
|
|
3006
|
-
this.axiosInstance.setHttpRequestFinishCallback = this.clientInstance.setHttpRequestFinishCallback;
|
|
3007
|
-
return this.axiosInstance;
|
|
3056
|
+
enableHttpHandler(httpClient) {
|
|
3057
|
+
httpClient?.enableHandler && httpClient.enableHandler();
|
|
3008
3058
|
}
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3059
|
+
disableHttpHandler(httpClient) {
|
|
3060
|
+
httpClient?.disableHandler && httpClient.disableHandler();
|
|
3061
|
+
}
|
|
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
|
+
);
|
|
3072
|
+
}
|
|
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);
|
|
3025
3104
|
});
|
|
3026
|
-
|
|
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
|
+
);
|
|
3027
3113
|
}
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3114
|
+
}
|
|
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
|
+
}
|
|
3122
|
+
}
|
|
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);
|
|
3032
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);
|
|
3033
3138
|
}
|
|
3034
|
-
return request;
|
|
3035
3139
|
}
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
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
|
+
}
|
|
3048
3158
|
}
|
|
3049
|
-
|
|
3050
|
-
|
|
3159
|
+
return Promise.reject(error);
|
|
3160
|
+
}
|
|
3161
|
+
}
|
|
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;
|
|
3051
3169
|
}
|
|
3052
3170
|
}
|
|
3053
|
-
|
|
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 {
|
|
3238
|
+
return Promise.reject(
|
|
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`"
|
|
3243
|
+
)
|
|
3244
|
+
);
|
|
3245
|
+
}
|
|
3054
3246
|
}
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
if (this.requestSuccessCallback && typeof this.requestSuccessCallback === "function") {
|
|
3066
|
-
this.requestSuccessCallback(response);
|
|
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;
|
|
3256
|
+
}
|
|
3067
3257
|
}
|
|
3068
|
-
if (
|
|
3069
|
-
|
|
3258
|
+
if (!urlMatches) {
|
|
3259
|
+
matches = false;
|
|
3260
|
+
break;
|
|
3070
3261
|
}
|
|
3071
3262
|
}
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
this.requestErrorCallback = callback;
|
|
3118
|
-
}
|
|
3119
|
-
setHttpRequestFinishCallback(callback) {
|
|
3120
|
-
this.requestFinishCallback = callback;
|
|
3121
|
-
}
|
|
3122
|
-
};
|
|
3123
|
-
__publicField(HttpClient, "axiosInstance");
|
|
3124
|
-
__publicField(HttpClient, "clientInstance");
|
|
3125
|
-
__publicField(HttpClient, "isHandlerEnabled");
|
|
3126
|
-
__publicField(HttpClient, "DEFAULT_HANDLER_DISABLE_TIMEOUT", 1e3);
|
|
3127
|
-
HttpClient = __decorateClass([
|
|
3128
|
-
staticDecorator()
|
|
3129
|
-
], HttpClient);
|
|
3130
|
-
|
|
3131
|
-
// src/__legacy__/stores/local-store.ts
|
|
3132
|
-
var LocalStore = class {
|
|
3133
|
-
async setData(key, value) {
|
|
3134
|
-
localStorage.setItem(key, value);
|
|
3135
|
-
}
|
|
3136
|
-
async getData(key) {
|
|
3137
|
-
return localStorage.getItem(key) ?? "{}";
|
|
3138
|
-
}
|
|
3139
|
-
async removeData(key) {
|
|
3140
|
-
localStorage.removeItem(key);
|
|
3141
|
-
}
|
|
3142
|
-
};
|
|
3143
|
-
|
|
3144
|
-
// src/__legacy__/stores/memory-store.ts
|
|
3145
|
-
var MemoryStore = class {
|
|
3146
|
-
constructor() {
|
|
3147
|
-
__publicField(this, "_data");
|
|
3148
|
-
this._data = /* @__PURE__ */ new Map();
|
|
3149
|
-
}
|
|
3150
|
-
async setData(key, value) {
|
|
3151
|
-
this._data.set(key, value);
|
|
3152
|
-
}
|
|
3153
|
-
async getData(key) {
|
|
3154
|
-
return this._data?.get(key) ?? "{}";
|
|
3155
|
-
}
|
|
3156
|
-
async removeData(key) {
|
|
3157
|
-
this._data.delete(key);
|
|
3158
|
-
}
|
|
3159
|
-
};
|
|
3160
|
-
|
|
3161
|
-
// src/__legacy__/stores/session-store.ts
|
|
3162
|
-
var SessionStore = class {
|
|
3163
|
-
async setData(key, value) {
|
|
3164
|
-
sessionStorage.setItem(key, value);
|
|
3165
|
-
}
|
|
3166
|
-
async getData(key) {
|
|
3167
|
-
return sessionStorage.getItem(key) ?? "{}";
|
|
3168
|
-
}
|
|
3169
|
-
async removeData(key) {
|
|
3170
|
-
sessionStorage.removeItem(key);
|
|
3171
|
-
}
|
|
3172
|
-
};
|
|
3173
|
-
|
|
3174
|
-
// src/__legacy__/utils/crypto-utils.ts
|
|
3175
|
-
var import_buffer = __toESM(require_buffer(), 1);
|
|
3176
|
-
var import_javascript5 = require("@asgardeo/javascript");
|
|
3177
|
-
var import_base64url = __toESM(require("base64url"), 1);
|
|
3178
|
-
var import_fast_sha256 = __toESM(require("fast-sha256"), 1);
|
|
3179
|
-
var import_jose = require("jose");
|
|
3180
|
-
var import_randombytes = __toESM(require_browser(), 1);
|
|
3181
|
-
var SPACryptoUtils = class {
|
|
3182
|
-
/**
|
|
3183
|
-
* Get URL encoded string.
|
|
3184
|
-
*
|
|
3185
|
-
* @returns {string} base 64 url encoded value.
|
|
3186
|
-
*/
|
|
3187
|
-
base64URLEncode(value) {
|
|
3188
|
-
return import_base64url.default.encode(value).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
3189
|
-
}
|
|
3190
|
-
base64URLDecode(value) {
|
|
3191
|
-
return import_base64url.default.decode(value).toString();
|
|
3192
|
-
}
|
|
3193
|
-
hashSha256(data) {
|
|
3194
|
-
return import_buffer.Buffer.from((0, import_fast_sha256.default)(new TextEncoder().encode(data)));
|
|
3195
|
-
}
|
|
3196
|
-
generateRandomBytes(length) {
|
|
3197
|
-
return (0, import_randombytes.default)(length);
|
|
3198
|
-
}
|
|
3199
|
-
verifyJwt(idToken, jwk, algorithms, clientID, issuer, subject, clockTolerance, validateJwtIssuer) {
|
|
3200
|
-
const jwtVerifyOptions = {
|
|
3201
|
-
algorithms,
|
|
3202
|
-
audience: clientID,
|
|
3203
|
-
clockTolerance,
|
|
3204
|
-
subject
|
|
3205
|
-
};
|
|
3206
|
-
if (validateJwtIssuer ?? true) {
|
|
3207
|
-
jwtVerifyOptions["issuer"] = issuer;
|
|
3208
|
-
}
|
|
3209
|
-
return (0, import_jose.jwtVerify)(
|
|
3210
|
-
idToken,
|
|
3211
|
-
(0, import_jose.createLocalJWKSet)({
|
|
3212
|
-
keys: [jwk]
|
|
3213
|
-
}),
|
|
3214
|
-
jwtVerifyOptions
|
|
3215
|
-
).then(() => {
|
|
3216
|
-
return Promise.resolve(true);
|
|
3217
|
-
}).catch((error) => {
|
|
3218
|
-
return Promise.reject(
|
|
3219
|
-
new import_javascript5.AsgardeoAuthException(
|
|
3220
|
-
"SPA-CRYPTO-UTILS-VJ-IV01",
|
|
3221
|
-
error?.reason ?? JSON.stringify(error),
|
|
3222
|
-
`${error?.code} ${error?.claim}`
|
|
3223
|
-
)
|
|
3224
|
-
);
|
|
3225
|
-
});
|
|
3226
|
-
}
|
|
3227
|
-
};
|
|
3228
|
-
|
|
3229
|
-
// src/__legacy__/worker/worker-core.ts
|
|
3230
|
-
var WebWorkerCore = async (config, getAuthHelper) => {
|
|
3231
|
-
const _store = new MemoryStore();
|
|
3232
|
-
const _cryptoUtils = new SPACryptoUtils();
|
|
3233
|
-
const _authenticationClient = new import_javascript6.AsgardeoAuthClient();
|
|
3234
|
-
await _authenticationClient.initialize(config, _store, _cryptoUtils);
|
|
3235
|
-
const _spaHelper = new SPAHelper(_authenticationClient);
|
|
3236
|
-
const _authenticationHelper = getAuthHelper(
|
|
3237
|
-
_authenticationClient,
|
|
3238
|
-
_spaHelper
|
|
3239
|
-
);
|
|
3240
|
-
const _dataLayer = _authenticationClient.getDataLayer();
|
|
3241
|
-
const _httpClient = HttpClient.getInstance();
|
|
3242
|
-
const attachToken = async (request) => {
|
|
3243
|
-
await _authenticationHelper.attachTokenToRequestConfig(request);
|
|
3244
|
-
};
|
|
3245
|
-
_httpClient?.init && await _httpClient.init(true, attachToken);
|
|
3246
|
-
const setHttpRequestStartCallback = (callback) => {
|
|
3247
|
-
_httpClient?.setHttpRequestStartCallback && _httpClient.setHttpRequestStartCallback(callback);
|
|
3248
|
-
};
|
|
3249
|
-
const setHttpRequestSuccessCallback = (callback) => {
|
|
3250
|
-
_httpClient?.setHttpRequestSuccessCallback && _httpClient.setHttpRequestSuccessCallback(callback);
|
|
3251
|
-
};
|
|
3252
|
-
const setHttpRequestFinishCallback = (callback) => {
|
|
3253
|
-
_httpClient?.setHttpRequestFinishCallback && _httpClient.setHttpRequestFinishCallback(callback);
|
|
3254
|
-
};
|
|
3255
|
-
const httpRequest = async (requestConfig) => {
|
|
3256
|
-
return await _authenticationHelper.httpRequest(_httpClient, requestConfig);
|
|
3257
|
-
};
|
|
3258
|
-
const httpRequestAll = async (requestConfigs) => {
|
|
3259
|
-
return await _authenticationHelper.httpRequestAll(requestConfigs, _httpClient);
|
|
3260
|
-
};
|
|
3261
|
-
const enableHttpHandler = () => {
|
|
3262
|
-
_authenticationHelper.enableHttpHandler(_httpClient);
|
|
3263
|
-
};
|
|
3264
|
-
const disableHttpHandler = () => {
|
|
3265
|
-
_authenticationHelper.disableHttpHandler(_httpClient);
|
|
3266
|
-
};
|
|
3267
|
-
const getAuthorizationURL = async (params) => {
|
|
3268
|
-
return _authenticationClient.getAuthorizationURL(params).then(async (url) => {
|
|
3269
|
-
const urlObject = new URL(url);
|
|
3270
|
-
const state = urlObject.searchParams.get(import_javascript6.OIDCRequestConstants.Params.STATE) ?? "";
|
|
3271
|
-
const pkce = await _authenticationClient.getPKCECode(state);
|
|
3272
|
-
return { authorizationURL: url, pkce };
|
|
3273
|
-
}).catch((error) => Promise.reject(error));
|
|
3274
|
-
};
|
|
3275
|
-
const startAutoRefreshToken = async () => {
|
|
3276
|
-
_spaHelper.clearRefreshTokenTimeout();
|
|
3277
|
-
_spaHelper.refreshAccessTokenAutomatically(_authenticationHelper);
|
|
3278
|
-
return;
|
|
3279
|
-
};
|
|
3280
|
-
const requestAccessToken = async (authorizationCode, sessionState, pkce, state) => {
|
|
3281
|
-
return await _authenticationHelper.requestAccessToken(authorizationCode, sessionState, void 0, pkce, state);
|
|
3282
|
-
};
|
|
3283
|
-
const signOut = async () => {
|
|
3284
|
-
_spaHelper.clearRefreshTokenTimeout();
|
|
3285
|
-
return await _authenticationClient.getSignOutURL();
|
|
3286
|
-
};
|
|
3287
|
-
const getSignOutURL = async () => {
|
|
3288
|
-
return await _authenticationClient.getSignOutURL();
|
|
3289
|
-
};
|
|
3290
|
-
const requestCustomGrant = async (config2) => {
|
|
3291
|
-
return await _authenticationHelper.requestCustomGrant(config2);
|
|
3292
|
-
};
|
|
3293
|
-
const refreshAccessToken = async () => {
|
|
3294
|
-
try {
|
|
3295
|
-
return await _authenticationHelper.refreshAccessToken();
|
|
3296
|
-
} catch (error) {
|
|
3297
|
-
return Promise.reject(error);
|
|
3298
|
-
}
|
|
3299
|
-
};
|
|
3300
|
-
const revokeAccessToken = async () => {
|
|
3301
|
-
const timer = await _spaHelper.getRefreshTimeoutTimer();
|
|
3302
|
-
return _authenticationClient.revokeAccessToken().then(() => {
|
|
3303
|
-
_spaHelper.clearRefreshTokenTimeout(timer);
|
|
3304
|
-
return Promise.resolve(true);
|
|
3305
|
-
}).catch((error) => Promise.reject(error));
|
|
3306
|
-
};
|
|
3307
|
-
const getBasicUserInfo = async () => {
|
|
3308
|
-
return _authenticationHelper.getBasicUserInfo();
|
|
3309
|
-
};
|
|
3310
|
-
const getDecodedIDToken = async () => {
|
|
3311
|
-
return _authenticationHelper.getDecodedIDToken();
|
|
3312
|
-
};
|
|
3313
|
-
const getCryptoHelper = async () => {
|
|
3314
|
-
return _authenticationHelper.getCryptoHelper();
|
|
3315
|
-
};
|
|
3316
|
-
const getDecodedIDPIDToken = async () => {
|
|
3317
|
-
return _authenticationHelper.getDecodedIDPIDToken();
|
|
3318
|
-
};
|
|
3319
|
-
const getIDToken = async () => {
|
|
3320
|
-
return _authenticationHelper.getIDToken();
|
|
3321
|
-
};
|
|
3322
|
-
const getOIDCServiceEndpoints = async () => {
|
|
3323
|
-
return _authenticationHelper.getOIDCServiceEndpoints();
|
|
3324
|
-
};
|
|
3325
|
-
const getAccessToken = () => {
|
|
3326
|
-
return _authenticationHelper.getAccessToken();
|
|
3327
|
-
};
|
|
3328
|
-
const isAuthenticated = () => {
|
|
3329
|
-
return _authenticationHelper.isAuthenticated();
|
|
3330
|
-
};
|
|
3331
|
-
const setSessionState = async (sessionState) => {
|
|
3332
|
-
await _dataLayer.setSessionDataParameter(
|
|
3333
|
-
import_javascript6.OIDCRequestConstants.Params.SESSION_STATE,
|
|
3334
|
-
sessionState
|
|
3335
|
-
);
|
|
3336
|
-
return;
|
|
3337
|
-
};
|
|
3338
|
-
const updateConfig = async (config2) => {
|
|
3339
|
-
await _authenticationClient.updateConfig(config2);
|
|
3340
|
-
return;
|
|
3341
|
-
};
|
|
3342
|
-
const getConfigData = async () => {
|
|
3343
|
-
return _dataLayer.getConfigData();
|
|
3344
|
-
};
|
|
3345
|
-
return {
|
|
3346
|
-
disableHttpHandler,
|
|
3347
|
-
enableHttpHandler,
|
|
3348
|
-
getAccessToken,
|
|
3349
|
-
getAuthorizationURL,
|
|
3350
|
-
getBasicUserInfo,
|
|
3351
|
-
getConfigData,
|
|
3352
|
-
getCryptoHelper,
|
|
3353
|
-
getDecodedIDPIDToken,
|
|
3354
|
-
getDecodedIDToken,
|
|
3355
|
-
getIDToken,
|
|
3356
|
-
getOIDCServiceEndpoints,
|
|
3357
|
-
getSignOutURL,
|
|
3358
|
-
httpRequest,
|
|
3359
|
-
httpRequestAll,
|
|
3360
|
-
isAuthenticated,
|
|
3361
|
-
refreshAccessToken,
|
|
3362
|
-
requestAccessToken,
|
|
3363
|
-
requestCustomGrant,
|
|
3364
|
-
revokeAccessToken,
|
|
3365
|
-
setHttpRequestFinishCallback,
|
|
3366
|
-
setHttpRequestStartCallback,
|
|
3367
|
-
setHttpRequestSuccessCallback,
|
|
3368
|
-
setSessionState,
|
|
3369
|
-
signOut,
|
|
3370
|
-
startAutoRefreshToken,
|
|
3371
|
-
updateConfig
|
|
3372
|
-
};
|
|
3373
|
-
};
|
|
3374
|
-
|
|
3375
|
-
// src/__legacy__/worker/worker-receiver.ts
|
|
3376
|
-
var workerReceiver = (getAuthHelper) => {
|
|
3377
|
-
const ctx = self;
|
|
3378
|
-
let webWorker;
|
|
3379
|
-
ctx.onmessage = async ({ data, ports }) => {
|
|
3380
|
-
const port = ports[0];
|
|
3381
|
-
if (data.type !== INIT && !webWorker) {
|
|
3382
|
-
port.postMessage(
|
|
3383
|
-
MessageUtils.generateFailureMessage(
|
|
3384
|
-
new import_javascript7.AsgardeoAuthException(
|
|
3385
|
-
"SPA-CLIENT_WORKER-ONMSG-NF01",
|
|
3386
|
-
"The web worker has not been initialized yet.",
|
|
3387
|
-
"The initialize method needs to be called before the specified operation can be carried out."
|
|
3388
|
-
)
|
|
3389
|
-
)
|
|
3390
|
-
);
|
|
3391
|
-
return;
|
|
3392
|
-
}
|
|
3393
|
-
switch (data.type) {
|
|
3394
|
-
case INIT:
|
|
3395
|
-
try {
|
|
3396
|
-
const config = { ...data.data };
|
|
3397
|
-
webWorker = await WebWorkerCore(config, getAuthHelper);
|
|
3398
|
-
webWorker.setHttpRequestFinishCallback(onRequestFinishCallback);
|
|
3399
|
-
webWorker.setHttpRequestStartCallback(onRequestStartCallback);
|
|
3400
|
-
webWorker.setHttpRequestSuccessCallback(onRequestSuccessCallback);
|
|
3401
|
-
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
3402
|
-
} catch (error) {
|
|
3403
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3404
|
-
}
|
|
3405
|
-
break;
|
|
3406
|
-
case GET_AUTH_URL:
|
|
3407
|
-
webWorker.getAuthorizationURL(data?.data).then((response) => {
|
|
3408
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
3409
|
-
}).catch((error) => {
|
|
3410
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3411
|
-
});
|
|
3412
|
-
break;
|
|
3413
|
-
case REQUEST_ACCESS_TOKEN:
|
|
3414
|
-
webWorker.requestAccessToken(data?.data?.code, data?.data?.sessionState, data?.data?.pkce, data?.data?.state).then((response) => {
|
|
3415
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
3416
|
-
}).catch((error) => {
|
|
3417
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3418
|
-
});
|
|
3419
|
-
break;
|
|
3420
|
-
case HTTP_REQUEST: {
|
|
3421
|
-
const request = data.data;
|
|
3422
|
-
const requestData = request?.data;
|
|
3423
|
-
if (data.data?.data?.formData === true) {
|
|
3424
|
-
const formData = new FormData();
|
|
3425
|
-
for (const key in requestData) {
|
|
3426
|
-
if (key === "formData") {
|
|
3427
|
-
continue;
|
|
3428
|
-
}
|
|
3429
|
-
formData.append(key, requestData[key]);
|
|
3430
|
-
}
|
|
3431
|
-
request.data = formData;
|
|
3432
|
-
}
|
|
3433
|
-
webWorker.httpRequest(request).then((response) => {
|
|
3434
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
3435
|
-
}).catch((error) => {
|
|
3436
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3437
|
-
});
|
|
3438
|
-
break;
|
|
3439
|
-
}
|
|
3440
|
-
case HTTP_REQUEST_ALL:
|
|
3441
|
-
webWorker.httpRequestAll(data.data).then((response) => {
|
|
3442
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
3443
|
-
}).catch((error) => {
|
|
3444
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3445
|
-
});
|
|
3446
|
-
break;
|
|
3447
|
-
case SIGN_OUT:
|
|
3448
|
-
try {
|
|
3449
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.signOut()));
|
|
3450
|
-
} catch (error) {
|
|
3451
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3452
|
-
}
|
|
3453
|
-
break;
|
|
3454
|
-
case REQUEST_CUSTOM_GRANT:
|
|
3455
|
-
webWorker.requestCustomGrant(data.data).then((response) => {
|
|
3456
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
3457
|
-
}).catch((error) => {
|
|
3458
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3459
|
-
});
|
|
3460
|
-
break;
|
|
3461
|
-
case REVOKE_ACCESS_TOKEN:
|
|
3462
|
-
webWorker.revokeAccessToken().then((response) => {
|
|
3463
|
-
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
3464
|
-
}).catch((error) => {
|
|
3465
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3466
|
-
});
|
|
3467
|
-
break;
|
|
3468
|
-
case GET_OIDC_SERVICE_ENDPOINTS:
|
|
3469
|
-
try {
|
|
3470
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getOIDCServiceEndpoints()));
|
|
3471
|
-
} catch (error) {
|
|
3472
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3473
|
-
}
|
|
3474
|
-
break;
|
|
3475
|
-
case GET_BASIC_USER_INFO:
|
|
3476
|
-
try {
|
|
3477
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getBasicUserInfo()));
|
|
3478
|
-
} catch (error) {
|
|
3479
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3480
|
-
}
|
|
3481
|
-
break;
|
|
3482
|
-
case GET_DECODED_ID_TOKEN:
|
|
3483
|
-
try {
|
|
3484
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getDecodedIDToken()));
|
|
3485
|
-
} catch (error) {
|
|
3486
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3487
|
-
}
|
|
3488
|
-
break;
|
|
3489
|
-
case GET_CRYPTO_HELPER:
|
|
3490
|
-
try {
|
|
3491
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getCryptoHelper()));
|
|
3492
|
-
} catch (error) {
|
|
3493
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3494
|
-
}
|
|
3495
|
-
break;
|
|
3496
|
-
case GET_ID_TOKEN:
|
|
3497
|
-
try {
|
|
3498
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getIDToken()));
|
|
3499
|
-
} catch (error) {
|
|
3500
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3501
|
-
}
|
|
3502
|
-
break;
|
|
3503
|
-
case ENABLE_HTTP_HANDLER:
|
|
3504
|
-
webWorker.enableHttpHandler();
|
|
3505
|
-
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
3506
|
-
break;
|
|
3507
|
-
case DISABLE_HTTP_HANDLER:
|
|
3508
|
-
webWorker.disableHttpHandler();
|
|
3509
|
-
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
3510
|
-
break;
|
|
3511
|
-
case IS_AUTHENTICATED:
|
|
3512
|
-
try {
|
|
3513
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.isAuthenticated()));
|
|
3514
|
-
} catch (error) {
|
|
3515
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3516
|
-
}
|
|
3517
|
-
break;
|
|
3518
|
-
case GET_SIGN_OUT_URL:
|
|
3519
|
-
try {
|
|
3520
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getSignOutURL()));
|
|
3521
|
-
} catch (error) {
|
|
3522
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3523
|
-
}
|
|
3524
|
-
break;
|
|
3525
|
-
case REFRESH_ACCESS_TOKEN:
|
|
3526
|
-
try {
|
|
3527
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.refreshAccessToken()));
|
|
3528
|
-
} catch (error) {
|
|
3529
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3530
|
-
}
|
|
3531
|
-
break;
|
|
3532
|
-
case START_AUTO_REFRESH_TOKEN:
|
|
3533
|
-
try {
|
|
3534
|
-
port.postMessage(MessageUtils.generateSuccessMessage(webWorker.startAutoRefreshToken()));
|
|
3535
|
-
} catch (error) {
|
|
3536
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3537
|
-
}
|
|
3538
|
-
break;
|
|
3539
|
-
case SET_SESSION_STATE:
|
|
3540
|
-
try {
|
|
3541
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.setSessionState(data?.data)));
|
|
3542
|
-
} catch (error) {
|
|
3543
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3544
|
-
}
|
|
3545
|
-
break;
|
|
3546
|
-
case UPDATE_CONFIG:
|
|
3547
|
-
try {
|
|
3548
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.updateConfig(data?.data)));
|
|
3549
|
-
} catch (error) {
|
|
3550
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3551
|
-
}
|
|
3552
|
-
break;
|
|
3553
|
-
case GET_CONFIG_DATA:
|
|
3554
|
-
try {
|
|
3555
|
-
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getConfigData()));
|
|
3556
|
-
} catch (error) {
|
|
3557
|
-
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
3558
|
-
}
|
|
3559
|
-
break;
|
|
3560
|
-
default:
|
|
3561
|
-
port?.postMessage(
|
|
3562
|
-
MessageUtils.generateFailureMessage(
|
|
3563
|
-
new import_javascript7.AsgardeoAuthException(
|
|
3564
|
-
"SPA-CLIENT_WORKER-ONMSG-IV02",
|
|
3565
|
-
"The message type is invalid.",
|
|
3566
|
-
`The message type provided, ${data.type}, is invalid.`
|
|
3567
|
-
)
|
|
3568
|
-
)
|
|
3569
|
-
);
|
|
3570
|
-
}
|
|
3571
|
-
};
|
|
3572
|
-
const onRequestStartCallback = () => {
|
|
3573
|
-
ctx.postMessage({ type: REQUEST_START });
|
|
3574
|
-
};
|
|
3575
|
-
const onRequestSuccessCallback = (response) => {
|
|
3576
|
-
ctx.postMessage({ data: JSON.stringify(response ?? ""), type: REQUEST_SUCCESS });
|
|
3577
|
-
};
|
|
3578
|
-
const onRequestFinishCallback = () => {
|
|
3579
|
-
ctx.postMessage({ type: REQUEST_FINISH });
|
|
3580
|
-
};
|
|
3581
|
-
};
|
|
3582
|
-
|
|
3583
|
-
// src/worker.ts
|
|
3584
|
-
workerReceiver((authClient, spaHelper) => {
|
|
3585
|
-
return new AuthenticationHelper(authClient, spaHelper);
|
|
3586
|
-
});
|
|
3587
|
-
var worker_default = {};
|
|
3588
|
-
|
|
3589
|
-
// src/__legacy__/clients/main-thread-client.ts
|
|
3590
|
-
var import_javascript8 = require("@asgardeo/javascript");
|
|
3591
|
-
var initiateStore = (store) => {
|
|
3592
|
-
switch (store) {
|
|
3593
|
-
case "localStorage" /* LocalStorage */:
|
|
3594
|
-
return new LocalStore();
|
|
3595
|
-
case "sessionStorage" /* SessionStorage */:
|
|
3596
|
-
return new SessionStore();
|
|
3597
|
-
case "browserMemory" /* BrowserMemory */:
|
|
3598
|
-
return new MemoryStore();
|
|
3599
|
-
default:
|
|
3600
|
-
return new SessionStore();
|
|
3601
|
-
}
|
|
3602
|
-
};
|
|
3603
|
-
var MainThreadClient = async (instanceID, config, getAuthHelper) => {
|
|
3604
|
-
const _store = initiateStore(config.storage);
|
|
3605
|
-
const _cryptoUtils = new SPACryptoUtils();
|
|
3606
|
-
const _authenticationClient = new import_javascript8.AsgardeoAuthClient();
|
|
3607
|
-
await _authenticationClient.initialize(config, _store, _cryptoUtils, instanceID);
|
|
3608
|
-
const _spaHelper = new SPAHelper(_authenticationClient);
|
|
3609
|
-
const _dataLayer = _authenticationClient.getDataLayer();
|
|
3610
|
-
const _sessionManagementHelper = await SessionManagementHelper(
|
|
3611
|
-
async () => {
|
|
3612
|
-
return _authenticationClient.getSignOutURL();
|
|
3613
|
-
},
|
|
3614
|
-
config.storage ?? "sessionStorage" /* SessionStorage */,
|
|
3615
|
-
(sessionState) => _dataLayer.setSessionDataParameter(
|
|
3616
|
-
import_javascript8.OIDCRequestConstants.Params.SESSION_STATE,
|
|
3617
|
-
sessionState ?? ""
|
|
3618
|
-
)
|
|
3619
|
-
);
|
|
3620
|
-
const _authenticationHelper = getAuthHelper(_authenticationClient, _spaHelper);
|
|
3621
|
-
let _getSignOutURLFromSessionStorage = false;
|
|
3622
|
-
const _httpClient = HttpClient.getInstance();
|
|
3623
|
-
let _isHttpHandlerEnabled = true;
|
|
3624
|
-
let _httpErrorCallback;
|
|
3625
|
-
let _httpFinishCallback;
|
|
3626
|
-
const attachToken = async (request) => {
|
|
3627
|
-
await _authenticationHelper.attachTokenToRequestConfig(request);
|
|
3628
|
-
};
|
|
3629
|
-
_httpClient?.init && await _httpClient.init(true, attachToken);
|
|
3630
|
-
const setHttpRequestStartCallback = (callback) => {
|
|
3631
|
-
_httpClient?.setHttpRequestStartCallback && _httpClient.setHttpRequestStartCallback(callback);
|
|
3632
|
-
};
|
|
3633
|
-
const setHttpRequestSuccessCallback = (callback) => {
|
|
3634
|
-
_httpClient?.setHttpRequestSuccessCallback && _httpClient.setHttpRequestSuccessCallback(callback);
|
|
3635
|
-
};
|
|
3636
|
-
const setHttpRequestFinishCallback = (callback) => {
|
|
3637
|
-
_httpClient?.setHttpRequestFinishCallback && _httpClient.setHttpRequestFinishCallback(callback);
|
|
3638
|
-
};
|
|
3639
|
-
const setHttpRequestErrorCallback = (callback) => {
|
|
3640
|
-
_httpErrorCallback = callback;
|
|
3641
|
-
};
|
|
3642
|
-
const httpRequest = async (requestConfig) => {
|
|
3643
|
-
return await _authenticationHelper.httpRequest(
|
|
3644
|
-
_httpClient,
|
|
3645
|
-
requestConfig,
|
|
3646
|
-
_isHttpHandlerEnabled,
|
|
3647
|
-
_httpErrorCallback,
|
|
3648
|
-
_httpFinishCallback
|
|
3649
|
-
);
|
|
3650
|
-
};
|
|
3651
|
-
const httpRequestAll = async (requestConfigs) => {
|
|
3652
|
-
return await _authenticationHelper.httpRequestAll(
|
|
3653
|
-
requestConfigs,
|
|
3654
|
-
_httpClient,
|
|
3655
|
-
_isHttpHandlerEnabled,
|
|
3656
|
-
_httpErrorCallback,
|
|
3657
|
-
_httpFinishCallback
|
|
3658
|
-
);
|
|
3659
|
-
};
|
|
3660
|
-
const getHttpClient = () => {
|
|
3661
|
-
return _httpClient;
|
|
3662
|
-
};
|
|
3663
|
-
const enableHttpHandler = () => {
|
|
3664
|
-
_authenticationHelper.enableHttpHandler(_httpClient);
|
|
3665
|
-
_isHttpHandlerEnabled = true;
|
|
3666
|
-
return true;
|
|
3667
|
-
};
|
|
3668
|
-
const disableHttpHandler = () => {
|
|
3669
|
-
_authenticationHelper.disableHttpHandler(_httpClient);
|
|
3670
|
-
_isHttpHandlerEnabled = false;
|
|
3671
|
-
return true;
|
|
3672
|
-
};
|
|
3673
|
-
const checkSession = async () => {
|
|
3674
|
-
const oidcEndpoints = await _authenticationClient.getOIDCServiceEndpoints();
|
|
3675
|
-
const config2 = await _dataLayer.getConfigData();
|
|
3676
|
-
_authenticationHelper.initializeSessionManger(
|
|
3677
|
-
config2,
|
|
3678
|
-
oidcEndpoints,
|
|
3679
|
-
async () => (await _authenticationClient.getBasicUserInfo()).sessionState,
|
|
3680
|
-
async (params) => _authenticationClient.getAuthorizationURL(params),
|
|
3681
|
-
_sessionManagementHelper
|
|
3682
|
-
);
|
|
3683
|
-
};
|
|
3684
|
-
const shouldStopAuthn = async () => {
|
|
3685
|
-
return await _sessionManagementHelper.receivePromptNoneResponse(async (sessionState) => {
|
|
3686
|
-
await _dataLayer.setSessionDataParameter(
|
|
3687
|
-
import_javascript8.OIDCRequestConstants.Params.SESSION_STATE,
|
|
3688
|
-
sessionState ?? ""
|
|
3689
|
-
);
|
|
3690
|
-
return;
|
|
3691
|
-
});
|
|
3692
|
-
};
|
|
3693
|
-
const setSessionStatus = async (sessionStatus) => {
|
|
3694
|
-
await _dataLayer.setSessionStatus(sessionStatus);
|
|
3695
|
-
};
|
|
3696
|
-
const signIn = async (signInConfig, authorizationCode, sessionState, state, tokenRequestConfig) => {
|
|
3697
|
-
const basicUserInfo = await _authenticationHelper.handleSignIn(shouldStopAuthn, checkSession, void 0);
|
|
3698
|
-
if (basicUserInfo) {
|
|
3699
|
-
return basicUserInfo;
|
|
3700
|
-
} else {
|
|
3701
|
-
let resolvedAuthorizationCode;
|
|
3702
|
-
let resolvedSessionState;
|
|
3703
|
-
let resolvedState;
|
|
3704
|
-
let resolvedTokenRequestConfig = { params: {} };
|
|
3705
|
-
if (config?.responseMode === import_javascript8.ResponseMode.FormPost && authorizationCode) {
|
|
3706
|
-
resolvedAuthorizationCode = authorizationCode;
|
|
3707
|
-
resolvedSessionState = sessionState ?? "";
|
|
3708
|
-
resolvedState = state ?? "";
|
|
3709
|
-
} else {
|
|
3710
|
-
resolvedAuthorizationCode = new URL(window.location.href).searchParams.get(import_javascript8.OIDCRequestConstants.Params.AUTHORIZATION_CODE) ?? "";
|
|
3711
|
-
resolvedSessionState = new URL(window.location.href).searchParams.get(import_javascript8.OIDCRequestConstants.Params.SESSION_STATE) ?? "";
|
|
3712
|
-
resolvedState = new URL(window.location.href).searchParams.get(import_javascript8.OIDCRequestConstants.Params.STATE) ?? "";
|
|
3713
|
-
SPAUtils.removeAuthorizationCode();
|
|
3714
|
-
}
|
|
3715
|
-
if (resolvedAuthorizationCode && resolvedState) {
|
|
3716
|
-
setSessionStatus("true");
|
|
3717
|
-
const storedTokenRequestConfig = await _dataLayer.getTemporaryDataParameter(TOKEN_REQUEST_CONFIG_KEY);
|
|
3718
|
-
if (storedTokenRequestConfig && typeof storedTokenRequestConfig === "string") {
|
|
3719
|
-
resolvedTokenRequestConfig = JSON.parse(storedTokenRequestConfig);
|
|
3720
|
-
}
|
|
3721
|
-
return requestAccessToken(
|
|
3722
|
-
resolvedAuthorizationCode,
|
|
3723
|
-
resolvedSessionState,
|
|
3724
|
-
resolvedState,
|
|
3725
|
-
resolvedTokenRequestConfig
|
|
3726
|
-
);
|
|
3727
|
-
}
|
|
3728
|
-
return _authenticationClient.getAuthorizationURL(signInConfig).then(async (url) => {
|
|
3729
|
-
if (config.storage === "browserMemory" /* BrowserMemory */ && config.enablePKCE) {
|
|
3730
|
-
const pkceKey = (0, import_javascript8.extractPkceStorageKeyFromState)(resolvedState);
|
|
3731
|
-
SPAUtils.setPKCE(pkceKey, await _authenticationClient.getPKCECode(resolvedState));
|
|
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
|
+
}
|
|
3732
3308
|
}
|
|
3733
|
-
if (
|
|
3734
|
-
|
|
3309
|
+
if (isHttpHandlerEnabled) {
|
|
3310
|
+
if (typeof httpErrorCallback === "function") {
|
|
3311
|
+
await httpErrorCallback(error);
|
|
3312
|
+
}
|
|
3313
|
+
if (typeof httpFinishCallback === "function") {
|
|
3314
|
+
httpFinishCallback();
|
|
3315
|
+
}
|
|
3735
3316
|
}
|
|
3736
|
-
|
|
3737
|
-
await SPAUtils.waitTillPageRedirect();
|
|
3738
|
-
return Promise.resolve({
|
|
3739
|
-
allowedScopes: "",
|
|
3740
|
-
displayName: "",
|
|
3741
|
-
email: "",
|
|
3742
|
-
sessionState: "",
|
|
3743
|
-
sub: "",
|
|
3744
|
-
tenantDomain: "",
|
|
3745
|
-
username: ""
|
|
3746
|
-
});
|
|
3317
|
+
return Promise.reject(error);
|
|
3747
3318
|
});
|
|
3748
|
-
}
|
|
3749
|
-
};
|
|
3750
|
-
const signOut = async () => {
|
|
3751
|
-
if (await _authenticationClient.isAuthenticated() && !_getSignOutURLFromSessionStorage) {
|
|
3752
|
-
location.href = await _authenticationClient.getSignOutURL();
|
|
3753
3319
|
} else {
|
|
3754
|
-
|
|
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
|
+
);
|
|
3755
3325
|
}
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
await
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
const enableRetrievingSignOutURLFromSession = (config2) => {
|
|
3765
|
-
if (config2.preventSignOutURLUpdate) {
|
|
3766
|
-
_getSignOutURLFromSessionStorage = true;
|
|
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 ?? "");
|
|
3767
3334
|
}
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
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
|
+
}
|
|
3346
|
+
} else {
|
|
3347
|
+
if (this._spaHelper) {
|
|
3348
|
+
this._spaHelper.refreshAccessTokenAutomatically(this);
|
|
3349
|
+
}
|
|
3350
|
+
}
|
|
3351
|
+
return this._authenticationClient.getUser();
|
|
3352
|
+
}).catch((error) => {
|
|
3353
|
+
return Promise.reject(error);
|
|
3354
|
+
});
|
|
3355
|
+
}
|
|
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
|
+
});
|
|
3376
|
+
}
|
|
3377
|
+
const rpIFrame = document.getElementById(RP_IFRAME);
|
|
3378
|
+
const promptNoneIFrame = rpIFrame?.contentDocument?.getElementById(
|
|
3379
|
+
PROMPT_NONE_IFRAME
|
|
3380
|
+
);
|
|
3773
3381
|
try {
|
|
3774
|
-
|
|
3382
|
+
const url = await constructSilentSignInUrl(additionalParams);
|
|
3383
|
+
promptNoneIFrame.src = url;
|
|
3775
3384
|
} catch (error) {
|
|
3776
3385
|
return Promise.reject(error);
|
|
3777
3386
|
}
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
...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);
|
|
3803
3411
|
});
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
const
|
|
3807
|
-
if (
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
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
|
+
});
|
|
3813
3425
|
}
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
3823
|
-
);
|
|
3824
|
-
};
|
|
3825
|
-
const getBasicUserInfo = async () => {
|
|
3826
|
-
return _authenticationHelper.getBasicUserInfo();
|
|
3827
|
-
};
|
|
3828
|
-
const getDecodedIDToken = async () => {
|
|
3829
|
-
return _authenticationHelper.getDecodedIDToken();
|
|
3830
|
-
};
|
|
3831
|
-
const getCryptoHelper = async () => {
|
|
3832
|
-
return _authenticationHelper.getCryptoHelper();
|
|
3833
|
-
};
|
|
3834
|
-
const getIDToken = async () => {
|
|
3835
|
-
return _authenticationHelper.getIDToken();
|
|
3836
|
-
};
|
|
3837
|
-
const getOIDCServiceEndpoints = async () => {
|
|
3838
|
-
return _authenticationHelper.getOIDCServiceEndpoints();
|
|
3839
|
-
};
|
|
3840
|
-
const getAccessToken = async () => {
|
|
3841
|
-
return _authenticationHelper.getAccessToken();
|
|
3842
|
-
};
|
|
3843
|
-
const getDataLayer = async () => {
|
|
3844
|
-
return _authenticationHelper.getDataLayer();
|
|
3845
|
-
};
|
|
3846
|
-
const getConfigData = async () => {
|
|
3847
|
-
return await _dataLayer.getConfigData();
|
|
3848
|
-
};
|
|
3849
|
-
const isAuthenticated = async () => {
|
|
3850
|
-
return _authenticationHelper.isAuthenticated();
|
|
3851
|
-
};
|
|
3852
|
-
const isSessionActive = async () => {
|
|
3853
|
-
return await _dataLayer.getSessionStatus() === "true";
|
|
3854
|
-
};
|
|
3855
|
-
const updateConfig = async (newConfig) => {
|
|
3856
|
-
const existingConfig = await _dataLayer.getConfigData();
|
|
3857
|
-
const isCheckSessionIframeDifferent = !(existingConfig && existingConfig.endpoints && existingConfig.endpoints.checkSessionIframe && newConfig && newConfig.endpoints && newConfig.endpoints.checkSessionIframe && existingConfig.endpoints.checkSessionIframe === newConfig.endpoints.checkSessionIframe);
|
|
3858
|
-
const config2 = { ...existingConfig, ...newConfig };
|
|
3859
|
-
await _authenticationClient.updateConfig(config2);
|
|
3860
|
-
if (config2.enableOIDCSessionManagement && isCheckSessionIframeDifferent) {
|
|
3861
|
-
_sessionManagementHelper.reset();
|
|
3862
|
-
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
|
+
}
|
|
3863
3435
|
}
|
|
3864
|
-
|
|
3865
|
-
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
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
|
+
}
|
|
3893
3499
|
};
|
|
3894
3500
|
|
|
3895
3501
|
// src/__legacy__/clients/web-worker-client.ts
|
|
3896
|
-
var import_javascript9 = require("@asgardeo/javascript");
|
|
3897
3502
|
var initiateStore2 = (store) => {
|
|
3898
3503
|
switch (store) {
|
|
3899
3504
|
case "localStorage" /* LocalStorage */:
|
|
@@ -3913,7 +3518,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
3913
3518
|
let _getSignOutURLFromSessionStorage = false;
|
|
3914
3519
|
const _store = initiateStore2(config.storage);
|
|
3915
3520
|
const _cryptoUtils = new SPACryptoUtils();
|
|
3916
|
-
const _authenticationClient = new
|
|
3521
|
+
const _authenticationClient = new import_javascript7.AsgardeoAuthClient();
|
|
3917
3522
|
await _authenticationClient.initialize(config, _store, _cryptoUtils, instanceID);
|
|
3918
3523
|
const _spaHelper = new SPAHelper(_authenticationClient);
|
|
3919
3524
|
const _sessionManagementHelper = await SessionManagementHelper(
|
|
@@ -3925,7 +3530,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
3925
3530
|
const signOutURL = await communicate(message);
|
|
3926
3531
|
return signOutURL;
|
|
3927
3532
|
} catch {
|
|
3928
|
-
return SPAUtils.
|
|
3533
|
+
return SPAUtils.getSignOutUrl(config.clientId, instanceID);
|
|
3929
3534
|
}
|
|
3930
3535
|
},
|
|
3931
3536
|
config.storage,
|
|
@@ -3942,7 +3547,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
3942
3547
|
return new Promise((resolve, reject) => {
|
|
3943
3548
|
const timer = setTimeout(() => {
|
|
3944
3549
|
reject(
|
|
3945
|
-
new
|
|
3550
|
+
new import_javascript7.AsgardeoAuthException(
|
|
3946
3551
|
"SPA-WEB_WORKER_CLIENT-COM-TO01",
|
|
3947
3552
|
"Operation timed out.",
|
|
3948
3553
|
"No response was received from the web worker for " + _requestTimeout / 1e3 + " since dispatching the request"
|
|
@@ -3965,7 +3570,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
3965
3570
|
};
|
|
3966
3571
|
});
|
|
3967
3572
|
};
|
|
3968
|
-
const
|
|
3573
|
+
const exchangeToken = (requestParams) => {
|
|
3969
3574
|
const message = {
|
|
3970
3575
|
data: requestParams,
|
|
3971
3576
|
type: REQUEST_CUSTOM_GRANT
|
|
@@ -4088,13 +3693,13 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4088
3693
|
return communicate(message);
|
|
4089
3694
|
};
|
|
4090
3695
|
const checkSession = async () => {
|
|
4091
|
-
const oidcEndpoints = await
|
|
3696
|
+
const oidcEndpoints = await getOpenIDProviderEndpoints();
|
|
4092
3697
|
const config2 = await getConfigData();
|
|
4093
3698
|
_authenticationHelper.initializeSessionManger(
|
|
4094
3699
|
config2,
|
|
4095
3700
|
oidcEndpoints,
|
|
4096
|
-
async () => (await
|
|
4097
|
-
async (params) => (await
|
|
3701
|
+
async () => (await _authenticationClient.getUserSession()).sessionState,
|
|
3702
|
+
async (params) => (await getSignInUrl(params)).authorizationURL,
|
|
4098
3703
|
_sessionManagementHelper
|
|
4099
3704
|
);
|
|
4100
3705
|
};
|
|
@@ -4108,9 +3713,11 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4108
3713
|
},
|
|
4109
3714
|
type: GET_AUTH_URL
|
|
4110
3715
|
};
|
|
4111
|
-
const response = await communicate(
|
|
4112
|
-
|
|
4113
|
-
|
|
3716
|
+
const response = await communicate(
|
|
3717
|
+
message
|
|
3718
|
+
);
|
|
3719
|
+
const pkceKey = (0, import_javascript7.extractPkceStorageKeyFromState)(
|
|
3720
|
+
new URL(response.authorizationURL).searchParams.get(import_javascript7.OIDCRequestConstants.Params.STATE) ?? ""
|
|
4114
3721
|
);
|
|
4115
3722
|
response.pkce && config2.enablePKCE && SPAUtils.setPKCE(pkceKey, response.pkce);
|
|
4116
3723
|
const urlString = response.authorizationURL;
|
|
@@ -4128,7 +3735,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4128
3735
|
tokenRequestConfig
|
|
4129
3736
|
);
|
|
4130
3737
|
};
|
|
4131
|
-
const
|
|
3738
|
+
const getSignInUrl = async (params) => {
|
|
4132
3739
|
const config2 = await getConfigData();
|
|
4133
3740
|
const message = {
|
|
4134
3741
|
data: params,
|
|
@@ -4137,8 +3744,8 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4137
3744
|
return communicate(message).then(
|
|
4138
3745
|
async (response) => {
|
|
4139
3746
|
if (response.pkce && config2.enablePKCE) {
|
|
4140
|
-
const pkceKey = (0,
|
|
4141
|
-
new URL(response.authorizationURL).searchParams.get(
|
|
3747
|
+
const pkceKey = (0, import_javascript7.extractPkceStorageKeyFromState)(
|
|
3748
|
+
new URL(response.authorizationURL).searchParams.get(import_javascript7.OIDCRequestConstants.Params.STATE) ?? ""
|
|
4142
3749
|
);
|
|
4143
3750
|
SPAUtils.setPKCE(pkceKey, response.pkce);
|
|
4144
3751
|
}
|
|
@@ -4148,7 +3755,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4148
3755
|
};
|
|
4149
3756
|
const requestAccessToken = async (resolvedAuthorizationCode, resolvedSessionState, resolvedState, tokenRequestConfig) => {
|
|
4150
3757
|
const config2 = await getConfigData();
|
|
4151
|
-
const pkceKey = (0,
|
|
3758
|
+
const pkceKey = (0, import_javascript7.extractPkceStorageKeyFromState)(resolvedState);
|
|
4152
3759
|
const message = {
|
|
4153
3760
|
data: {
|
|
4154
3761
|
code: resolvedAuthorizationCode,
|
|
@@ -4165,7 +3772,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4165
3772
|
type: GET_SIGN_OUT_URL
|
|
4166
3773
|
};
|
|
4167
3774
|
return communicate(message2).then((url) => {
|
|
4168
|
-
SPAUtils.setSignOutURL(url, config2.
|
|
3775
|
+
SPAUtils.setSignOutURL(url, config2.clientId, instanceID);
|
|
4169
3776
|
if (config2.enableOIDCSessionManagement) {
|
|
4170
3777
|
checkSession();
|
|
4171
3778
|
}
|
|
@@ -4184,12 +3791,12 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4184
3791
|
});
|
|
4185
3792
|
};
|
|
4186
3793
|
const tryRetrievingUserInfo = async () => {
|
|
4187
|
-
if (await
|
|
3794
|
+
if (await isSignedIn()) {
|
|
4188
3795
|
await startAutoRefreshToken();
|
|
4189
3796
|
if (config.enableOIDCSessionManagement) {
|
|
4190
3797
|
checkSession();
|
|
4191
3798
|
}
|
|
4192
|
-
return
|
|
3799
|
+
return getUser();
|
|
4193
3800
|
}
|
|
4194
3801
|
return Promise.resolve(void 0);
|
|
4195
3802
|
};
|
|
@@ -4205,20 +3812,20 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4205
3812
|
let resolvedAuthorizationCode;
|
|
4206
3813
|
let resolvedSessionState;
|
|
4207
3814
|
let resolvedState;
|
|
4208
|
-
if (config?.responseMode ===
|
|
3815
|
+
if (config?.responseMode === "form_post" && authorizationCode) {
|
|
4209
3816
|
resolvedAuthorizationCode = authorizationCode;
|
|
4210
3817
|
resolvedSessionState = sessionState ?? "";
|
|
4211
3818
|
resolvedState = state ?? "";
|
|
4212
3819
|
} else {
|
|
4213
|
-
resolvedAuthorizationCode = new URL(window.location.href).searchParams.get(
|
|
4214
|
-
resolvedSessionState = new URL(window.location.href).searchParams.get(
|
|
4215
|
-
resolvedState = new URL(window.location.href).searchParams.get(
|
|
3820
|
+
resolvedAuthorizationCode = new URL(window.location.href).searchParams.get(import_javascript7.OIDCRequestConstants.Params.AUTHORIZATION_CODE) ?? "";
|
|
3821
|
+
resolvedSessionState = new URL(window.location.href).searchParams.get(import_javascript7.OIDCRequestConstants.Params.SESSION_STATE) ?? "";
|
|
3822
|
+
resolvedState = new URL(window.location.href).searchParams.get(import_javascript7.OIDCRequestConstants.Params.STATE) ?? "";
|
|
4216
3823
|
SPAUtils.removeAuthorizationCode();
|
|
4217
3824
|
}
|
|
4218
3825
|
if (resolvedAuthorizationCode && resolvedState) {
|
|
4219
3826
|
return requestAccessToken(resolvedAuthorizationCode, resolvedSessionState, resolvedState, tokenRequestConfig);
|
|
4220
3827
|
}
|
|
4221
|
-
return
|
|
3828
|
+
return getSignInUrl(params).then(async (response) => {
|
|
4222
3829
|
location.href = response.authorizationURL;
|
|
4223
3830
|
await SPAUtils.waitTillPageRedirect();
|
|
4224
3831
|
return Promise.resolve({
|
|
@@ -4249,7 +3856,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4249
3856
|
return reject(error);
|
|
4250
3857
|
});
|
|
4251
3858
|
} else {
|
|
4252
|
-
window.location.href = SPAUtils.
|
|
3859
|
+
window.location.href = SPAUtils.getSignOutUrl(config.clientId, instanceID);
|
|
4253
3860
|
return SPAUtils.waitTillPageRedirect().then(() => {
|
|
4254
3861
|
return Promise.resolve(true);
|
|
4255
3862
|
});
|
|
@@ -4267,7 +3874,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4267
3874
|
return Promise.reject(error);
|
|
4268
3875
|
});
|
|
4269
3876
|
};
|
|
4270
|
-
const
|
|
3877
|
+
const getOpenIDProviderEndpoints = () => {
|
|
4271
3878
|
const message = {
|
|
4272
3879
|
type: GET_OIDC_SERVICE_ENDPOINTS
|
|
4273
3880
|
};
|
|
@@ -4287,7 +3894,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4287
3894
|
return Promise.reject(error);
|
|
4288
3895
|
});
|
|
4289
3896
|
};
|
|
4290
|
-
const
|
|
3897
|
+
const getUser = () => {
|
|
4291
3898
|
const message = {
|
|
4292
3899
|
type: GET_BASIC_USER_INFO
|
|
4293
3900
|
};
|
|
@@ -4297,7 +3904,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4297
3904
|
return Promise.reject(error);
|
|
4298
3905
|
});
|
|
4299
3906
|
};
|
|
4300
|
-
const
|
|
3907
|
+
const getDecodedIdToken = () => {
|
|
4301
3908
|
const message = {
|
|
4302
3909
|
type: GET_DECODED_ID_TOKEN
|
|
4303
3910
|
};
|
|
@@ -4317,7 +3924,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4317
3924
|
return Promise.reject(error);
|
|
4318
3925
|
});
|
|
4319
3926
|
};
|
|
4320
|
-
const
|
|
3927
|
+
const getCrypto = () => {
|
|
4321
3928
|
const message = {
|
|
4322
3929
|
type: GET_CRYPTO_HELPER
|
|
4323
3930
|
};
|
|
@@ -4327,7 +3934,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4327
3934
|
return Promise.reject(error);
|
|
4328
3935
|
});
|
|
4329
3936
|
};
|
|
4330
|
-
const
|
|
3937
|
+
const getIdToken = () => {
|
|
4331
3938
|
const message = {
|
|
4332
3939
|
type: GET_ID_TOKEN
|
|
4333
3940
|
};
|
|
@@ -4337,7 +3944,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4337
3944
|
return Promise.reject(error);
|
|
4338
3945
|
});
|
|
4339
3946
|
};
|
|
4340
|
-
const
|
|
3947
|
+
const isSignedIn = () => {
|
|
4341
3948
|
const message = {
|
|
4342
3949
|
type: IS_AUTHENTICATED
|
|
4343
3950
|
};
|
|
@@ -4373,7 +3980,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4373
3980
|
httpClientHandlers.requestFinishCallback = callback;
|
|
4374
3981
|
}
|
|
4375
3982
|
};
|
|
4376
|
-
const
|
|
3983
|
+
const reInitialize = async (newConfig) => {
|
|
4377
3984
|
const existingConfig = await getConfigData();
|
|
4378
3985
|
const isCheckSessionIframeDifferent = !(existingConfig && existingConfig.endpoints && existingConfig.endpoints.checkSessionIframe && newConfig && newConfig.endpoints && newConfig.endpoints.checkSessionIframe && existingConfig.endpoints.checkSessionIframe === newConfig.endpoints.checkSessionIframe);
|
|
4379
3986
|
const config2 = { ...existingConfig, ...newConfig };
|
|
@@ -4390,19 +3997,19 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4390
3997
|
return {
|
|
4391
3998
|
disableHttpHandler,
|
|
4392
3999
|
enableHttpHandler,
|
|
4393
|
-
|
|
4000
|
+
getUser,
|
|
4394
4001
|
getConfigData,
|
|
4395
|
-
|
|
4002
|
+
getCrypto,
|
|
4396
4003
|
getDecodedIDPIDToken,
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4004
|
+
getDecodedIdToken,
|
|
4005
|
+
getIdToken,
|
|
4006
|
+
getOpenIDProviderEndpoints,
|
|
4400
4007
|
httpRequest,
|
|
4401
4008
|
httpRequestAll,
|
|
4402
4009
|
initialize,
|
|
4403
|
-
|
|
4010
|
+
isSignedIn,
|
|
4404
4011
|
refreshAccessToken,
|
|
4405
|
-
|
|
4012
|
+
exchangeToken,
|
|
4406
4013
|
revokeAccessToken,
|
|
4407
4014
|
setHttpRequestErrorCallback,
|
|
4408
4015
|
setHttpRequestFinishCallback,
|
|
@@ -4411,7 +4018,7 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4411
4018
|
signIn,
|
|
4412
4019
|
signOut,
|
|
4413
4020
|
trySignInSilently,
|
|
4414
|
-
|
|
4021
|
+
reInitialize
|
|
4415
4022
|
};
|
|
4416
4023
|
};
|
|
4417
4024
|
|
|
@@ -4419,7 +4026,6 @@ var WebWorkerClient = async (instanceID, config, webWorker, getAuthHelper) => {
|
|
|
4419
4026
|
var DefaultConfig = {
|
|
4420
4027
|
autoLogoutOnTokenRefreshError: true,
|
|
4421
4028
|
checkSessionInterval: 3,
|
|
4422
|
-
clientHost: origin,
|
|
4423
4029
|
enableOIDCSessionManagement: false,
|
|
4424
4030
|
periodicTokenRefresh: false,
|
|
4425
4031
|
sessionRefreshInterval: 300,
|
|
@@ -4430,7 +4036,8 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4430
4036
|
__publicField(this, "_client");
|
|
4431
4037
|
__publicField(this, "_storage");
|
|
4432
4038
|
__publicField(this, "_authHelper", AuthenticationHelper);
|
|
4433
|
-
|
|
4039
|
+
// protected _worker: new () => Worker = WorkerFile;
|
|
4040
|
+
__publicField(this, "_worker", null);
|
|
4434
4041
|
__publicField(this, "_initialized", false);
|
|
4435
4042
|
__publicField(this, "_startedInitialize", false);
|
|
4436
4043
|
__publicField(this, "_onSignInCallback", () => null);
|
|
@@ -4449,13 +4056,13 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4449
4056
|
this._authHelper = AuthenticationHelper;
|
|
4450
4057
|
}
|
|
4451
4058
|
}
|
|
4452
|
-
instantiateWorker(worker) {
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
}
|
|
4059
|
+
// public instantiateWorker(worker: new () => Worker) {
|
|
4060
|
+
// if (worker) {
|
|
4061
|
+
// this._worker = worker;
|
|
4062
|
+
// } else {
|
|
4063
|
+
// this._worker = WorkerFile;
|
|
4064
|
+
// }
|
|
4065
|
+
// }
|
|
4459
4066
|
/**
|
|
4460
4067
|
* This method specifies if the `AsgardeoSPAClient` has been initialized or not.
|
|
4461
4068
|
*
|
|
@@ -4465,7 +4072,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4465
4072
|
*
|
|
4466
4073
|
* @private
|
|
4467
4074
|
*/
|
|
4468
|
-
async
|
|
4075
|
+
async isInitialized() {
|
|
4469
4076
|
if (!this._startedInitialize) {
|
|
4470
4077
|
return false;
|
|
4471
4078
|
}
|
|
@@ -4495,18 +4102,18 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4495
4102
|
* @private
|
|
4496
4103
|
*/
|
|
4497
4104
|
async _validateMethod(validateAuthentication = true) {
|
|
4498
|
-
if (!await this.
|
|
4105
|
+
if (!await this.isInitialized()) {
|
|
4499
4106
|
return Promise.reject(
|
|
4500
|
-
new
|
|
4107
|
+
new import_javascript8.AsgardeoAuthException(
|
|
4501
4108
|
"SPA-AUTH_CLIENT-VM-NF01",
|
|
4502
4109
|
"The SDK is not initialized.",
|
|
4503
4110
|
"The SDK must be initialized first."
|
|
4504
4111
|
)
|
|
4505
4112
|
);
|
|
4506
4113
|
}
|
|
4507
|
-
if (validateAuthentication && !await this.
|
|
4114
|
+
if (validateAuthentication && !await this.isSignedIn()) {
|
|
4508
4115
|
return Promise.reject(
|
|
4509
|
-
new
|
|
4116
|
+
new import_javascript8.AsgardeoAuthException(
|
|
4510
4117
|
"SPA-AUTH_CLIENT-VM-IV02",
|
|
4511
4118
|
"The user is not authenticated.",
|
|
4512
4119
|
"The user must be authenticated first."
|
|
@@ -4556,8 +4163,8 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4556
4163
|
* @example
|
|
4557
4164
|
* ```
|
|
4558
4165
|
* auth.initialize({
|
|
4559
|
-
*
|
|
4560
|
-
*
|
|
4166
|
+
* afterSignInUrl: "http://localhost:3000/sign-in",
|
|
4167
|
+
* clientId: "client ID",
|
|
4561
4168
|
* baseUrl: "https://api.asgardeo.io"
|
|
4562
4169
|
* });
|
|
4563
4170
|
* ```
|
|
@@ -4573,7 +4180,6 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4573
4180
|
this._initialized = false;
|
|
4574
4181
|
this._startedInitialize = true;
|
|
4575
4182
|
authHelper && this.instantiateAuthHelper(authHelper);
|
|
4576
|
-
workerFile && this.instantiateWorker(workerFile);
|
|
4577
4183
|
const _config = await this._client?.getConfigData();
|
|
4578
4184
|
if (!(this._storage === "webWorker" /* WebWorker */)) {
|
|
4579
4185
|
const mainThreadClientConfig = config;
|
|
@@ -4634,11 +4240,11 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4634
4240
|
/**
|
|
4635
4241
|
* This method returns a Promise that resolves with the basic user information obtained from the ID token.
|
|
4636
4242
|
*
|
|
4637
|
-
* @return {Promise<
|
|
4243
|
+
* @return {Promise<User>} - A promise that resolves with the user information.
|
|
4638
4244
|
*
|
|
4639
4245
|
* @example
|
|
4640
4246
|
* ```
|
|
4641
|
-
* auth.
|
|
4247
|
+
* auth.getUser().then((response) => {
|
|
4642
4248
|
* // console.log(response);
|
|
4643
4249
|
* }).catch((error) => {
|
|
4644
4250
|
* // console.error(error);
|
|
@@ -4651,9 +4257,9 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4651
4257
|
*
|
|
4652
4258
|
* @preserve
|
|
4653
4259
|
*/
|
|
4654
|
-
async
|
|
4260
|
+
async getUser() {
|
|
4655
4261
|
await this._validateMethod();
|
|
4656
|
-
return this._client?.
|
|
4262
|
+
return this._client?.getUser();
|
|
4657
4263
|
}
|
|
4658
4264
|
/**
|
|
4659
4265
|
* This method initiates the authentication flow. This should be called twice.
|
|
@@ -4678,7 +4284,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4678
4284
|
* @param {string} sessionState - The session state. (Optional)
|
|
4679
4285
|
* @param {string} state - The state. (Optional)
|
|
4680
4286
|
*
|
|
4681
|
-
* @return {Promise<
|
|
4287
|
+
* @return {Promise<User>} - A promise that resolves with the user information.
|
|
4682
4288
|
*
|
|
4683
4289
|
* @example
|
|
4684
4290
|
* ```
|
|
@@ -4692,16 +4298,14 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4692
4298
|
* @preserve
|
|
4693
4299
|
*/
|
|
4694
4300
|
async signIn(config, authorizationCode, sessionState, state, tokenRequestConfig) {
|
|
4695
|
-
await this.
|
|
4301
|
+
await this.isInitialized();
|
|
4696
4302
|
if (!SPAUtils.canContinueSignIn(Boolean(config?.callOnlyOnRedirect), authorizationCode)) {
|
|
4697
4303
|
return void 0;
|
|
4698
4304
|
}
|
|
4699
4305
|
delete config?.callOnlyOnRedirect;
|
|
4700
4306
|
return this._client?.signIn(config, authorizationCode, sessionState, state, tokenRequestConfig).then((response) => {
|
|
4701
4307
|
if (this._onSignInCallback) {
|
|
4702
|
-
|
|
4703
|
-
this._onSignInCallback(response);
|
|
4704
|
-
}
|
|
4308
|
+
this._onSignInCallback(response);
|
|
4705
4309
|
}
|
|
4706
4310
|
return response;
|
|
4707
4311
|
});
|
|
@@ -4714,7 +4318,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4714
4318
|
* If this method is to be called on page load and the `signIn` method is also to be called on page load,
|
|
4715
4319
|
* then it is advisable to call this method after the `signIn` call.
|
|
4716
4320
|
*
|
|
4717
|
-
* @return {Promise<
|
|
4321
|
+
* @return {Promise<User | boolean>} - A Promise that resolves with the user information after signing in
|
|
4718
4322
|
* or with `false` if the user is not signed in.
|
|
4719
4323
|
*
|
|
4720
4324
|
* @example
|
|
@@ -4723,16 +4327,13 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4723
4327
|
*```
|
|
4724
4328
|
*/
|
|
4725
4329
|
async trySignInSilently(additionalParams, tokenRequestConfig) {
|
|
4726
|
-
await this.
|
|
4330
|
+
await this.isInitialized();
|
|
4727
4331
|
if (SPAUtils.wasSignInCalled()) {
|
|
4728
4332
|
return void 0;
|
|
4729
4333
|
}
|
|
4730
4334
|
return this._client?.trySignInSilently(additionalParams, tokenRequestConfig).then((response) => {
|
|
4731
4335
|
if (this._onSignInCallback && response) {
|
|
4732
|
-
|
|
4733
|
-
if (basicUserInfo.allowedScopes || basicUserInfo.displayName || basicUserInfo.email || basicUserInfo.username) {
|
|
4734
|
-
this._onSignInCallback(basicUserInfo);
|
|
4735
|
-
}
|
|
4336
|
+
this._onSignInCallback(response);
|
|
4736
4337
|
}
|
|
4737
4338
|
return response;
|
|
4738
4339
|
});
|
|
@@ -4885,7 +4486,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4885
4486
|
*
|
|
4886
4487
|
* @preserve
|
|
4887
4488
|
*/
|
|
4888
|
-
async
|
|
4489
|
+
async exchangeToken(config) {
|
|
4889
4490
|
if (config.signInRequired) {
|
|
4890
4491
|
await this._validateMethod();
|
|
4891
4492
|
} else {
|
|
@@ -4893,14 +4494,14 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4893
4494
|
}
|
|
4894
4495
|
if (!config.id) {
|
|
4895
4496
|
return Promise.reject(
|
|
4896
|
-
new
|
|
4497
|
+
new import_javascript8.AsgardeoAuthException(
|
|
4897
4498
|
"SPA-AUTH_CLIENT-RCG-NF01",
|
|
4898
4499
|
"The custom grant request id not found.",
|
|
4899
4500
|
"The id attribute of the custom grant config object passed as an argument should have a value."
|
|
4900
4501
|
)
|
|
4901
4502
|
);
|
|
4902
4503
|
}
|
|
4903
|
-
const customGrantResponse = await this._client?.
|
|
4504
|
+
const customGrantResponse = await this._client?.exchangeToken(config);
|
|
4904
4505
|
const customGrantCallback = this._onCustomGrant.get(config.id);
|
|
4905
4506
|
customGrantCallback && customGrantCallback(this._onCustomGrant?.get(config.id));
|
|
4906
4507
|
return customGrantResponse;
|
|
@@ -4951,9 +4552,9 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4951
4552
|
*
|
|
4952
4553
|
* @preserve
|
|
4953
4554
|
*/
|
|
4954
|
-
async
|
|
4955
|
-
await this.
|
|
4956
|
-
return this._client?.
|
|
4555
|
+
async getOpenIDProviderEndpoints() {
|
|
4556
|
+
await this.isInitialized();
|
|
4557
|
+
return this._client?.getOpenIDProviderEndpoints();
|
|
4957
4558
|
}
|
|
4958
4559
|
/**
|
|
4959
4560
|
* This methods returns the Axios http client.
|
|
@@ -4970,13 +4571,13 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4970
4571
|
const mainThreadClient = this._client;
|
|
4971
4572
|
return mainThreadClient.getHttpClient();
|
|
4972
4573
|
}
|
|
4973
|
-
throw new
|
|
4574
|
+
throw new import_javascript8.AsgardeoAuthException(
|
|
4974
4575
|
"SPA-AUTH_CLIENT-GHC-IV01",
|
|
4975
4576
|
"Http client cannot be returned.",
|
|
4976
4577
|
"The http client cannot be returned when the storage type is set to webWorker."
|
|
4977
4578
|
);
|
|
4978
4579
|
}
|
|
4979
|
-
throw new
|
|
4580
|
+
throw new import_javascript8.AsgardeoAuthException(
|
|
4980
4581
|
"SPA-AUTH_CLIENT-GHC-NF02",
|
|
4981
4582
|
"The SDK is not initialized.",
|
|
4982
4583
|
"The SDK has not been initialized yet. Initialize the SDK using the initialize method before calling this method."
|
|
@@ -4990,7 +4591,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
4990
4591
|
*
|
|
4991
4592
|
* @example
|
|
4992
4593
|
* ```
|
|
4993
|
-
* auth.
|
|
4594
|
+
* auth.getDecodedIdToken().then((response)=>{
|
|
4994
4595
|
* // console.log(response);
|
|
4995
4596
|
* }).catch((error)=>{
|
|
4996
4597
|
* // console.error(error);
|
|
@@ -5002,9 +4603,9 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5002
4603
|
*
|
|
5003
4604
|
* @preserve
|
|
5004
4605
|
*/
|
|
5005
|
-
async
|
|
4606
|
+
async getDecodedIdToken() {
|
|
5006
4607
|
await this._validateMethod();
|
|
5007
|
-
return this._client?.
|
|
4608
|
+
return this._client?.getDecodedIdToken();
|
|
5008
4609
|
}
|
|
5009
4610
|
/**
|
|
5010
4611
|
* This method returns the IsomorphicCrypto instance.
|
|
@@ -5014,21 +4615,21 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5014
4615
|
*
|
|
5015
4616
|
* @example
|
|
5016
4617
|
* ```
|
|
5017
|
-
* auth.
|
|
4618
|
+
* auth.getCrypto().then((response)=>{
|
|
5018
4619
|
* // console.log(response);
|
|
5019
4620
|
* }).catch((error)=>{
|
|
5020
4621
|
* // console.error(error);
|
|
5021
4622
|
* });
|
|
5022
4623
|
* ```
|
|
5023
|
-
* @link https://github.com/asgardeo/asgardeo-auth-spa-sdk/tree/master#
|
|
4624
|
+
* @link https://github.com/asgardeo/asgardeo-auth-spa-sdk/tree/master#getCrypto
|
|
5024
4625
|
*
|
|
5025
4626
|
* @memberof AsgardeoSPAClient
|
|
5026
4627
|
*
|
|
5027
4628
|
* @preserve
|
|
5028
4629
|
*/
|
|
5029
|
-
async
|
|
4630
|
+
async getCrypto() {
|
|
5030
4631
|
await this._validateMethod();
|
|
5031
|
-
return this._client?.
|
|
4632
|
+
return this._client?.getCrypto();
|
|
5032
4633
|
}
|
|
5033
4634
|
/**
|
|
5034
4635
|
* This method return the ID token.
|
|
@@ -5037,18 +4638,18 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5037
4638
|
*
|
|
5038
4639
|
* @example
|
|
5039
4640
|
* ```
|
|
5040
|
-
* const idToken = await auth.
|
|
4641
|
+
* const idToken = await auth.getIdToken();
|
|
5041
4642
|
* ```
|
|
5042
4643
|
*
|
|
5043
|
-
* @link https://github.com/asgardeo/asgardeo-auth-js-sdk/tree/master#
|
|
4644
|
+
* @link https://github.com/asgardeo/asgardeo-auth-js-sdk/tree/master#getIdToken
|
|
5044
4645
|
*
|
|
5045
4646
|
* @memberof AsgardeoAuthClient
|
|
5046
4647
|
*
|
|
5047
4648
|
* @preserve
|
|
5048
4649
|
*/
|
|
5049
|
-
async
|
|
4650
|
+
async getIdToken() {
|
|
5050
4651
|
await this._validateMethod();
|
|
5051
|
-
return this._client?.
|
|
4652
|
+
return this._client?.getIdToken();
|
|
5052
4653
|
}
|
|
5053
4654
|
/**
|
|
5054
4655
|
* This method return a Promise that resolves with the access token.
|
|
@@ -5076,7 +4677,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5076
4677
|
await this._validateMethod();
|
|
5077
4678
|
if (this._storage && [("webWorker" /* WebWorker */, "browserMemory" /* BrowserMemory */)].includes(this._storage)) {
|
|
5078
4679
|
return Promise.reject(
|
|
5079
|
-
new
|
|
4680
|
+
new import_javascript8.AsgardeoAuthException(
|
|
5080
4681
|
"SPA-AUTH_CLIENT-GAT-IV01",
|
|
5081
4682
|
"The access token cannot be returned.",
|
|
5082
4683
|
"The access token cannot be returned when the storage type is set to webWorker or browserMemory."
|
|
@@ -5112,7 +4713,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5112
4713
|
await this._validateMethod();
|
|
5113
4714
|
if (this._storage && [("webWorker" /* WebWorker */, "browserMemory" /* BrowserMemory */)].includes(this._storage)) {
|
|
5114
4715
|
return Promise.reject(
|
|
5115
|
-
new
|
|
4716
|
+
new import_javascript8.AsgardeoAuthException(
|
|
5116
4717
|
"SPA-AUTH_CLIENT-GIAT-IV01",
|
|
5117
4718
|
"The access token cannot be returned.",
|
|
5118
4719
|
"The access token cannot be returned when the storage type is set to webWorker or browserMemory."
|
|
@@ -5131,7 +4732,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5131
4732
|
*
|
|
5132
4733
|
* @example
|
|
5133
4734
|
* ```
|
|
5134
|
-
* auth.
|
|
4735
|
+
* auth.getStorageManager().then((dataLayer) => {
|
|
5135
4736
|
* // console.log(dataLayer);
|
|
5136
4737
|
* }).catch((error) => {
|
|
5137
4738
|
* // console.error(error);
|
|
@@ -5144,11 +4745,11 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5144
4745
|
*
|
|
5145
4746
|
* @preserve
|
|
5146
4747
|
*/
|
|
5147
|
-
async
|
|
4748
|
+
async getStorageManager() {
|
|
5148
4749
|
await this._validateMethod();
|
|
5149
4750
|
if (this._storage && [("webWorker" /* WebWorker */, "browserMemory" /* BrowserMemory */)].includes(this._storage)) {
|
|
5150
4751
|
return Promise.reject(
|
|
5151
|
-
new
|
|
4752
|
+
new import_javascript8.AsgardeoAuthException(
|
|
5152
4753
|
"SPA-AUTH_CLIENT-GDL-IV01",
|
|
5153
4754
|
"The data layer cannot be returned.",
|
|
5154
4755
|
"The data layer cannot be returned when the storage type is set to webWorker or browserMemory."
|
|
@@ -5156,7 +4757,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5156
4757
|
);
|
|
5157
4758
|
}
|
|
5158
4759
|
const mainThreadClient = this._client;
|
|
5159
|
-
return mainThreadClient.
|
|
4760
|
+
return mainThreadClient.getStorageManager();
|
|
5160
4761
|
}
|
|
5161
4762
|
/**
|
|
5162
4763
|
* This method return a Promise that resolves with the config data stored in the storage.
|
|
@@ -5215,9 +4816,9 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5215
4816
|
*
|
|
5216
4817
|
* @preserve
|
|
5217
4818
|
*/
|
|
5218
|
-
async
|
|
5219
|
-
await this.
|
|
5220
|
-
return this._client?.
|
|
4819
|
+
async isSignedIn() {
|
|
4820
|
+
await this.isInitialized();
|
|
4821
|
+
return this._client?.isSignedIn();
|
|
5221
4822
|
}
|
|
5222
4823
|
/**
|
|
5223
4824
|
* This method specifies if there is an active session in the browser or not.
|
|
@@ -5229,10 +4830,10 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5229
4830
|
* @preserve
|
|
5230
4831
|
*/
|
|
5231
4832
|
async isSessionActive() {
|
|
5232
|
-
await this.
|
|
4833
|
+
await this.isInitialized();
|
|
5233
4834
|
if (this._storage && [("webWorker" /* WebWorker */, "browserMemory" /* BrowserMemory */)].includes(this._storage)) {
|
|
5234
4835
|
return Promise.reject(
|
|
5235
|
-
new
|
|
4836
|
+
new import_javascript8.AsgardeoAuthException(
|
|
5236
4837
|
"SPA-AUTH_CLIENT-ISA-IV01",
|
|
5237
4838
|
"The active session cannot be returned.",
|
|
5238
4839
|
"The active session cannot be returned when the storage type is set to webWorker or browserMemory."
|
|
@@ -5243,7 +4844,7 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5243
4844
|
return mainThreadClient?.isSessionActive();
|
|
5244
4845
|
}
|
|
5245
4846
|
async on(hook, callback, id) {
|
|
5246
|
-
await this.
|
|
4847
|
+
await this.isInitialized();
|
|
5247
4848
|
if (callback && typeof callback === "function") {
|
|
5248
4849
|
switch (hook) {
|
|
5249
4850
|
case "sign-in" /* SignIn */:
|
|
@@ -5282,115 +4883,462 @@ var _AsgardeoSPAClient = class _AsgardeoSPAClient {
|
|
|
5282
4883
|
if (signOutFail) {
|
|
5283
4884
|
this._onSignOutFailedCallback(signOutFail);
|
|
5284
4885
|
}
|
|
5285
|
-
break;
|
|
4886
|
+
break;
|
|
4887
|
+
}
|
|
4888
|
+
default:
|
|
4889
|
+
throw new import_javascript8.AsgardeoAuthException("SPA-AUTH_CLIENT-ON-IV01", "Invalid hook.", "The provided hook is invalid.");
|
|
4890
|
+
}
|
|
4891
|
+
} else {
|
|
4892
|
+
throw new import_javascript8.AsgardeoAuthException(
|
|
4893
|
+
"SPA-AUTH_CLIENT-ON-IV02",
|
|
4894
|
+
"Invalid callback function.",
|
|
4895
|
+
"The provided callback function is invalid."
|
|
4896
|
+
);
|
|
4897
|
+
}
|
|
4898
|
+
}
|
|
4899
|
+
/**
|
|
4900
|
+
* This method enables callback functions attached to the http client.
|
|
4901
|
+
*
|
|
4902
|
+
* @return {Promise<boolean>} - A promise that resolves with True.
|
|
4903
|
+
*
|
|
4904
|
+
* @example
|
|
4905
|
+
* ```
|
|
4906
|
+
* auth.enableHttpHandler();
|
|
4907
|
+
* ```
|
|
4908
|
+
*
|
|
4909
|
+
* @link https://github.com/asgardeo/asgardeo-auth-spa-sdk/tree/master#enableHttpHandler
|
|
4910
|
+
*
|
|
4911
|
+
* @memberof AsgardeoSPAClient
|
|
4912
|
+
*
|
|
4913
|
+
* @preserve
|
|
4914
|
+
*/
|
|
4915
|
+
async enableHttpHandler() {
|
|
4916
|
+
await this.isInitialized();
|
|
4917
|
+
return this._client?.enableHttpHandler();
|
|
4918
|
+
}
|
|
4919
|
+
/**
|
|
4920
|
+
* This method disables callback functions attached to the http client.
|
|
4921
|
+
*
|
|
4922
|
+
* @return {Promise<boolean>} - A promise that resolves with True.
|
|
4923
|
+
*
|
|
4924
|
+
* @example
|
|
4925
|
+
* ```
|
|
4926
|
+
* auth.disableHttpHandler();
|
|
4927
|
+
* ```
|
|
4928
|
+
*
|
|
4929
|
+
* @link https://github.com/asgardeo/asgardeo-auth-spa-sdk/tree/master#disableHttpHandler
|
|
4930
|
+
*
|
|
4931
|
+
* @memberof AsgardeoSPAClient
|
|
4932
|
+
*
|
|
4933
|
+
* @preserve
|
|
4934
|
+
*/
|
|
4935
|
+
async disableHttpHandler() {
|
|
4936
|
+
await this.isInitialized();
|
|
4937
|
+
return this._client?.disableHttpHandler();
|
|
4938
|
+
}
|
|
4939
|
+
/**
|
|
4940
|
+
* This method updates the configuration that was passed into the constructor when instantiating this class.
|
|
4941
|
+
*
|
|
4942
|
+
* @param {Partial<AuthClientConfig<T>>} config - A config object to update the SDK configurations with.
|
|
4943
|
+
*
|
|
4944
|
+
* @example
|
|
4945
|
+
* ```
|
|
4946
|
+
* const config = {
|
|
4947
|
+
* afterSignInUrl: "http://localhost:3000/sign-in",
|
|
4948
|
+
* clientId: "client ID",
|
|
4949
|
+
* baseUrl: "https://api.asgardeo.io"
|
|
4950
|
+
* }
|
|
4951
|
+
* const auth.reInitialize(config);
|
|
4952
|
+
* ```
|
|
4953
|
+
* @link https://github.com/asgardeo/asgardeo-auth-spa-sdk/tree/master/lib#reInitialize
|
|
4954
|
+
*
|
|
4955
|
+
* @memberof AsgardeoAuthClient
|
|
4956
|
+
*
|
|
4957
|
+
* @preserve
|
|
4958
|
+
*/
|
|
4959
|
+
async reInitialize(config) {
|
|
4960
|
+
await this.isInitialized();
|
|
4961
|
+
if (this._storage === "webWorker" /* WebWorker */) {
|
|
4962
|
+
const client = this._client;
|
|
4963
|
+
await client.reInitialize(config);
|
|
4964
|
+
} else {
|
|
4965
|
+
const client = this._client;
|
|
4966
|
+
await client.reInitialize(config);
|
|
4967
|
+
}
|
|
4968
|
+
return;
|
|
4969
|
+
}
|
|
4970
|
+
};
|
|
4971
|
+
__publicField(_AsgardeoSPAClient, "_instances", /* @__PURE__ */ new Map());
|
|
4972
|
+
var AsgardeoSPAClient = _AsgardeoSPAClient;
|
|
4973
|
+
|
|
4974
|
+
// src/__legacy__/models/http-client.ts
|
|
4975
|
+
var import_axios2 = require("axios");
|
|
4976
|
+
|
|
4977
|
+
// src/__legacy__/models/web-worker.ts
|
|
4978
|
+
var WebWorkerClass = class {
|
|
4979
|
+
constructor() {
|
|
4980
|
+
__publicField(this, "onmessage", () => null);
|
|
4981
|
+
__publicField(this, "postMessage", () => null);
|
|
4982
|
+
}
|
|
4983
|
+
};
|
|
4984
|
+
|
|
4985
|
+
// src/__legacy__/worker/worker-receiver.ts
|
|
4986
|
+
var import_javascript10 = require("@asgardeo/javascript");
|
|
4987
|
+
|
|
4988
|
+
// src/__legacy__/worker/worker-core.ts
|
|
4989
|
+
var import_javascript9 = require("@asgardeo/javascript");
|
|
4990
|
+
var WebWorkerCore = async (config, getAuthHelper) => {
|
|
4991
|
+
const _store = new MemoryStore();
|
|
4992
|
+
const _cryptoUtils = new SPACryptoUtils();
|
|
4993
|
+
const _authenticationClient = new import_javascript9.AsgardeoAuthClient();
|
|
4994
|
+
await _authenticationClient.initialize(config, _store, _cryptoUtils);
|
|
4995
|
+
const _spaHelper = new SPAHelper(_authenticationClient);
|
|
4996
|
+
const _authenticationHelper = getAuthHelper(
|
|
4997
|
+
_authenticationClient,
|
|
4998
|
+
_spaHelper
|
|
4999
|
+
);
|
|
5000
|
+
const _dataLayer = _authenticationClient.getStorageManager();
|
|
5001
|
+
const _httpClient = HttpClient.getInstance();
|
|
5002
|
+
const attachToken = async (request) => {
|
|
5003
|
+
await _authenticationHelper.attachTokenToRequestConfig(request);
|
|
5004
|
+
};
|
|
5005
|
+
_httpClient?.init && await _httpClient.init(true, attachToken);
|
|
5006
|
+
const setHttpRequestStartCallback = (callback) => {
|
|
5007
|
+
_httpClient?.setHttpRequestStartCallback && _httpClient.setHttpRequestStartCallback(callback);
|
|
5008
|
+
};
|
|
5009
|
+
const setHttpRequestSuccessCallback = (callback) => {
|
|
5010
|
+
_httpClient?.setHttpRequestSuccessCallback && _httpClient.setHttpRequestSuccessCallback(callback);
|
|
5011
|
+
};
|
|
5012
|
+
const setHttpRequestFinishCallback = (callback) => {
|
|
5013
|
+
_httpClient?.setHttpRequestFinishCallback && _httpClient.setHttpRequestFinishCallback(callback);
|
|
5014
|
+
};
|
|
5015
|
+
const httpRequest = async (requestConfig) => {
|
|
5016
|
+
return await _authenticationHelper.httpRequest(_httpClient, requestConfig);
|
|
5017
|
+
};
|
|
5018
|
+
const httpRequestAll = async (requestConfigs) => {
|
|
5019
|
+
return await _authenticationHelper.httpRequestAll(requestConfigs, _httpClient);
|
|
5020
|
+
};
|
|
5021
|
+
const enableHttpHandler = () => {
|
|
5022
|
+
_authenticationHelper.enableHttpHandler(_httpClient);
|
|
5023
|
+
};
|
|
5024
|
+
const disableHttpHandler = () => {
|
|
5025
|
+
_authenticationHelper.disableHttpHandler(_httpClient);
|
|
5026
|
+
};
|
|
5027
|
+
const getSignInUrl = async (params) => {
|
|
5028
|
+
return _authenticationClient.getSignInUrl(params).then(async (url) => {
|
|
5029
|
+
const urlObject = new URL(url);
|
|
5030
|
+
const state = urlObject.searchParams.get(import_javascript9.OIDCRequestConstants.Params.STATE) ?? "";
|
|
5031
|
+
const pkce = await _authenticationClient.getPKCECode(state);
|
|
5032
|
+
return { authorizationURL: url, pkce };
|
|
5033
|
+
}).catch((error) => Promise.reject(error));
|
|
5034
|
+
};
|
|
5035
|
+
const startAutoRefreshToken = async () => {
|
|
5036
|
+
_spaHelper.clearRefreshTokenTimeout();
|
|
5037
|
+
_spaHelper.refreshAccessTokenAutomatically(_authenticationHelper);
|
|
5038
|
+
return;
|
|
5039
|
+
};
|
|
5040
|
+
const requestAccessToken = async (authorizationCode, sessionState, pkce, state) => {
|
|
5041
|
+
return await _authenticationHelper.requestAccessToken(authorizationCode, sessionState, void 0, pkce, state);
|
|
5042
|
+
};
|
|
5043
|
+
const signOut = async () => {
|
|
5044
|
+
_spaHelper.clearRefreshTokenTimeout();
|
|
5045
|
+
return await _authenticationClient.getSignOutUrl();
|
|
5046
|
+
};
|
|
5047
|
+
const getSignOutUrl = async () => {
|
|
5048
|
+
return await _authenticationClient.getSignOutUrl();
|
|
5049
|
+
};
|
|
5050
|
+
const exchangeToken = async (config2) => {
|
|
5051
|
+
return await _authenticationHelper.exchangeToken(config2);
|
|
5052
|
+
};
|
|
5053
|
+
const refreshAccessToken = async () => {
|
|
5054
|
+
try {
|
|
5055
|
+
return await _authenticationHelper.refreshAccessToken();
|
|
5056
|
+
} catch (error) {
|
|
5057
|
+
return Promise.reject(error);
|
|
5058
|
+
}
|
|
5059
|
+
};
|
|
5060
|
+
const revokeAccessToken = async () => {
|
|
5061
|
+
const timer = await _spaHelper.getRefreshTimeoutTimer();
|
|
5062
|
+
return _authenticationClient.revokeAccessToken().then(() => {
|
|
5063
|
+
_spaHelper.clearRefreshTokenTimeout(timer);
|
|
5064
|
+
return Promise.resolve(true);
|
|
5065
|
+
}).catch((error) => Promise.reject(error));
|
|
5066
|
+
};
|
|
5067
|
+
const getUser = async () => {
|
|
5068
|
+
return _authenticationHelper.getUser();
|
|
5069
|
+
};
|
|
5070
|
+
const getDecodedIdToken = async () => {
|
|
5071
|
+
return _authenticationHelper.getDecodedIdToken();
|
|
5072
|
+
};
|
|
5073
|
+
const getCrypto = async () => {
|
|
5074
|
+
return _authenticationHelper.getCrypto();
|
|
5075
|
+
};
|
|
5076
|
+
const getDecodedIDPIDToken = async () => {
|
|
5077
|
+
return _authenticationHelper.getDecodedIDPIDToken();
|
|
5078
|
+
};
|
|
5079
|
+
const getIdToken = async () => {
|
|
5080
|
+
return _authenticationHelper.getIdToken();
|
|
5081
|
+
};
|
|
5082
|
+
const getOpenIDProviderEndpoints = async () => {
|
|
5083
|
+
return _authenticationHelper.getOpenIDProviderEndpoints();
|
|
5084
|
+
};
|
|
5085
|
+
const getAccessToken = () => {
|
|
5086
|
+
return _authenticationHelper.getAccessToken();
|
|
5087
|
+
};
|
|
5088
|
+
const isSignedIn = () => {
|
|
5089
|
+
return _authenticationHelper.isSignedIn();
|
|
5090
|
+
};
|
|
5091
|
+
const setSessionState = async (sessionState) => {
|
|
5092
|
+
await _dataLayer.setSessionDataParameter(
|
|
5093
|
+
import_javascript9.OIDCRequestConstants.Params.SESSION_STATE,
|
|
5094
|
+
sessionState
|
|
5095
|
+
);
|
|
5096
|
+
return;
|
|
5097
|
+
};
|
|
5098
|
+
const reInitialize = async (config2) => {
|
|
5099
|
+
await _authenticationClient.reInitialize(config2);
|
|
5100
|
+
return;
|
|
5101
|
+
};
|
|
5102
|
+
const getConfigData = async () => {
|
|
5103
|
+
return _dataLayer.getConfigData();
|
|
5104
|
+
};
|
|
5105
|
+
return {
|
|
5106
|
+
disableHttpHandler,
|
|
5107
|
+
enableHttpHandler,
|
|
5108
|
+
getAccessToken,
|
|
5109
|
+
getSignInUrl,
|
|
5110
|
+
getUser,
|
|
5111
|
+
getConfigData,
|
|
5112
|
+
getCrypto,
|
|
5113
|
+
getDecodedIDPIDToken,
|
|
5114
|
+
getDecodedIdToken,
|
|
5115
|
+
getIdToken,
|
|
5116
|
+
getOpenIDProviderEndpoints,
|
|
5117
|
+
getSignOutUrl,
|
|
5118
|
+
httpRequest,
|
|
5119
|
+
httpRequestAll,
|
|
5120
|
+
isSignedIn,
|
|
5121
|
+
refreshAccessToken,
|
|
5122
|
+
requestAccessToken,
|
|
5123
|
+
exchangeToken,
|
|
5124
|
+
revokeAccessToken,
|
|
5125
|
+
setHttpRequestFinishCallback,
|
|
5126
|
+
setHttpRequestStartCallback,
|
|
5127
|
+
setHttpRequestSuccessCallback,
|
|
5128
|
+
setSessionState,
|
|
5129
|
+
signOut,
|
|
5130
|
+
startAutoRefreshToken,
|
|
5131
|
+
reInitialize
|
|
5132
|
+
};
|
|
5133
|
+
};
|
|
5134
|
+
|
|
5135
|
+
// src/__legacy__/worker/worker-receiver.ts
|
|
5136
|
+
var workerReceiver = (getAuthHelper) => {
|
|
5137
|
+
const ctx = self;
|
|
5138
|
+
let webWorker;
|
|
5139
|
+
ctx.onmessage = async ({ data, ports }) => {
|
|
5140
|
+
const port = ports[0];
|
|
5141
|
+
if (data.type !== INIT && !webWorker) {
|
|
5142
|
+
port.postMessage(
|
|
5143
|
+
MessageUtils.generateFailureMessage(
|
|
5144
|
+
new import_javascript10.AsgardeoAuthException(
|
|
5145
|
+
"SPA-CLIENT_WORKER-ONMSG-NF01",
|
|
5146
|
+
"The web worker has not been initialized yet.",
|
|
5147
|
+
"The initialize method needs to be called before the specified operation can be carried out."
|
|
5148
|
+
)
|
|
5149
|
+
)
|
|
5150
|
+
);
|
|
5151
|
+
return;
|
|
5152
|
+
}
|
|
5153
|
+
switch (data.type) {
|
|
5154
|
+
case INIT:
|
|
5155
|
+
try {
|
|
5156
|
+
const config = { ...data.data };
|
|
5157
|
+
webWorker = await WebWorkerCore(config, getAuthHelper);
|
|
5158
|
+
webWorker.setHttpRequestFinishCallback(onRequestFinishCallback);
|
|
5159
|
+
webWorker.setHttpRequestStartCallback(onRequestStartCallback);
|
|
5160
|
+
webWorker.setHttpRequestSuccessCallback(onRequestSuccessCallback);
|
|
5161
|
+
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
5162
|
+
} catch (error) {
|
|
5163
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5164
|
+
}
|
|
5165
|
+
break;
|
|
5166
|
+
case GET_AUTH_URL:
|
|
5167
|
+
webWorker.getSignInUrl(data?.data).then((response) => {
|
|
5168
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
5169
|
+
}).catch((error) => {
|
|
5170
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5171
|
+
});
|
|
5172
|
+
break;
|
|
5173
|
+
case REQUEST_ACCESS_TOKEN:
|
|
5174
|
+
webWorker.requestAccessToken(data?.data?.code, data?.data?.sessionState, data?.data?.pkce, data?.data?.state).then((response) => {
|
|
5175
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
5176
|
+
}).catch((error) => {
|
|
5177
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5178
|
+
});
|
|
5179
|
+
break;
|
|
5180
|
+
case HTTP_REQUEST: {
|
|
5181
|
+
const request = data.data;
|
|
5182
|
+
const requestData = request?.data;
|
|
5183
|
+
if (data.data?.data?.formData === true) {
|
|
5184
|
+
const formData = new FormData();
|
|
5185
|
+
for (const key in requestData) {
|
|
5186
|
+
if (key === "formData") {
|
|
5187
|
+
continue;
|
|
5188
|
+
}
|
|
5189
|
+
formData.append(key, requestData[key]);
|
|
5190
|
+
}
|
|
5191
|
+
request.data = formData;
|
|
5286
5192
|
}
|
|
5287
|
-
|
|
5288
|
-
|
|
5193
|
+
webWorker.httpRequest(request).then((response) => {
|
|
5194
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
5195
|
+
}).catch((error) => {
|
|
5196
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5197
|
+
});
|
|
5198
|
+
break;
|
|
5289
5199
|
}
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
|
|
5354
|
-
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
|
|
5361
|
-
|
|
5362
|
-
|
|
5363
|
-
|
|
5364
|
-
|
|
5365
|
-
|
|
5200
|
+
case HTTP_REQUEST_ALL:
|
|
5201
|
+
webWorker.httpRequestAll(data.data).then((response) => {
|
|
5202
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
5203
|
+
}).catch((error) => {
|
|
5204
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5205
|
+
});
|
|
5206
|
+
break;
|
|
5207
|
+
case SIGN_OUT:
|
|
5208
|
+
try {
|
|
5209
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.signOut()));
|
|
5210
|
+
} catch (error) {
|
|
5211
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5212
|
+
}
|
|
5213
|
+
break;
|
|
5214
|
+
case REQUEST_CUSTOM_GRANT:
|
|
5215
|
+
webWorker.exchangeToken(data.data).then((response) => {
|
|
5216
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
5217
|
+
}).catch((error) => {
|
|
5218
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5219
|
+
});
|
|
5220
|
+
break;
|
|
5221
|
+
case REVOKE_ACCESS_TOKEN:
|
|
5222
|
+
webWorker.revokeAccessToken().then((response) => {
|
|
5223
|
+
port.postMessage(MessageUtils.generateSuccessMessage(response));
|
|
5224
|
+
}).catch((error) => {
|
|
5225
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5226
|
+
});
|
|
5227
|
+
break;
|
|
5228
|
+
case GET_OIDC_SERVICE_ENDPOINTS:
|
|
5229
|
+
try {
|
|
5230
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getOpenIDProviderEndpoints()));
|
|
5231
|
+
} catch (error) {
|
|
5232
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5233
|
+
}
|
|
5234
|
+
break;
|
|
5235
|
+
case GET_BASIC_USER_INFO:
|
|
5236
|
+
try {
|
|
5237
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getUser()));
|
|
5238
|
+
} catch (error) {
|
|
5239
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5240
|
+
}
|
|
5241
|
+
break;
|
|
5242
|
+
case GET_DECODED_ID_TOKEN:
|
|
5243
|
+
try {
|
|
5244
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getDecodedIdToken()));
|
|
5245
|
+
} catch (error) {
|
|
5246
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5247
|
+
}
|
|
5248
|
+
break;
|
|
5249
|
+
case GET_CRYPTO_HELPER:
|
|
5250
|
+
try {
|
|
5251
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getCrypto()));
|
|
5252
|
+
} catch (error) {
|
|
5253
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5254
|
+
}
|
|
5255
|
+
break;
|
|
5256
|
+
case GET_ID_TOKEN:
|
|
5257
|
+
try {
|
|
5258
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getIdToken()));
|
|
5259
|
+
} catch (error) {
|
|
5260
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5261
|
+
}
|
|
5262
|
+
break;
|
|
5263
|
+
case ENABLE_HTTP_HANDLER:
|
|
5264
|
+
webWorker.enableHttpHandler();
|
|
5265
|
+
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
5266
|
+
break;
|
|
5267
|
+
case DISABLE_HTTP_HANDLER:
|
|
5268
|
+
webWorker.disableHttpHandler();
|
|
5269
|
+
port.postMessage(MessageUtils.generateSuccessMessage());
|
|
5270
|
+
break;
|
|
5271
|
+
case IS_AUTHENTICATED:
|
|
5272
|
+
try {
|
|
5273
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.isSignedIn()));
|
|
5274
|
+
} catch (error) {
|
|
5275
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5276
|
+
}
|
|
5277
|
+
break;
|
|
5278
|
+
case GET_SIGN_OUT_URL:
|
|
5279
|
+
try {
|
|
5280
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getSignOutUrl()));
|
|
5281
|
+
} catch (error) {
|
|
5282
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5283
|
+
}
|
|
5284
|
+
break;
|
|
5285
|
+
case REFRESH_ACCESS_TOKEN:
|
|
5286
|
+
try {
|
|
5287
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.refreshAccessToken()));
|
|
5288
|
+
} catch (error) {
|
|
5289
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5290
|
+
}
|
|
5291
|
+
break;
|
|
5292
|
+
case START_AUTO_REFRESH_TOKEN:
|
|
5293
|
+
try {
|
|
5294
|
+
port.postMessage(MessageUtils.generateSuccessMessage(webWorker.startAutoRefreshToken()));
|
|
5295
|
+
} catch (error) {
|
|
5296
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5297
|
+
}
|
|
5298
|
+
break;
|
|
5299
|
+
case SET_SESSION_STATE:
|
|
5300
|
+
try {
|
|
5301
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.setSessionState(data?.data)));
|
|
5302
|
+
} catch (error) {
|
|
5303
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5304
|
+
}
|
|
5305
|
+
break;
|
|
5306
|
+
case UPDATE_CONFIG:
|
|
5307
|
+
try {
|
|
5308
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.reInitialize(data?.data)));
|
|
5309
|
+
} catch (error) {
|
|
5310
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5311
|
+
}
|
|
5312
|
+
break;
|
|
5313
|
+
case GET_CONFIG_DATA:
|
|
5314
|
+
try {
|
|
5315
|
+
port.postMessage(MessageUtils.generateSuccessMessage(await webWorker.getConfigData()));
|
|
5316
|
+
} catch (error) {
|
|
5317
|
+
port.postMessage(MessageUtils.generateFailureMessage(error));
|
|
5318
|
+
}
|
|
5319
|
+
break;
|
|
5320
|
+
default:
|
|
5321
|
+
port?.postMessage(
|
|
5322
|
+
MessageUtils.generateFailureMessage(
|
|
5323
|
+
new import_javascript10.AsgardeoAuthException(
|
|
5324
|
+
"SPA-CLIENT_WORKER-ONMSG-IV02",
|
|
5325
|
+
"The message type is invalid.",
|
|
5326
|
+
`The message type provided, ${data.type}, is invalid.`
|
|
5327
|
+
)
|
|
5328
|
+
)
|
|
5329
|
+
);
|
|
5366
5330
|
}
|
|
5367
|
-
|
|
5368
|
-
|
|
5369
|
-
};
|
|
5370
|
-
|
|
5371
|
-
|
|
5372
|
-
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
var WebWorkerClass = class extends Worker {
|
|
5378
|
-
constructor() {
|
|
5379
|
-
super(...arguments);
|
|
5380
|
-
__publicField(this, "onmessage", () => null);
|
|
5381
|
-
}
|
|
5382
|
-
};
|
|
5383
|
-
|
|
5384
|
-
// src/constants/StyleConstants.ts
|
|
5385
|
-
var StyleConstants = class {
|
|
5386
|
-
constructor() {
|
|
5387
|
-
}
|
|
5331
|
+
};
|
|
5332
|
+
const onRequestStartCallback = () => {
|
|
5333
|
+
ctx.postMessage({ type: REQUEST_START });
|
|
5334
|
+
};
|
|
5335
|
+
const onRequestSuccessCallback = (response) => {
|
|
5336
|
+
ctx.postMessage({ data: JSON.stringify(response ?? ""), type: REQUEST_SUCCESS });
|
|
5337
|
+
};
|
|
5338
|
+
const onRequestFinishCallback = () => {
|
|
5339
|
+
ctx.postMessage({ type: REQUEST_FINISH });
|
|
5340
|
+
};
|
|
5388
5341
|
};
|
|
5389
|
-
/**
|
|
5390
|
-
* CSS class prefix for out of the box components.
|
|
5391
|
-
*/
|
|
5392
|
-
__publicField(StyleConstants, "VENDOR_CSS_CLASS_PREFIX", "asgardeo");
|
|
5393
|
-
var StyleConstants_default = StyleConstants;
|
|
5394
5342
|
|
|
5395
5343
|
// src/utils/hasAuthParamsInUrl.ts
|
|
5396
5344
|
var hasAuthParamsInUrl = (params = window.location.search) => {
|
|
@@ -5399,12 +5347,6 @@ var hasAuthParamsInUrl = (params = window.location.search) => {
|
|
|
5399
5347
|
};
|
|
5400
5348
|
var hasAuthParamsInUrl_default = hasAuthParamsInUrl;
|
|
5401
5349
|
|
|
5402
|
-
// src/utils/withVendorCSSClassPrefix.ts
|
|
5403
|
-
var withVendorCSSClassPrefix = (className) => {
|
|
5404
|
-
return `${StyleConstants_default.VENDOR_CSS_CLASS_PREFIX}-${className}`;
|
|
5405
|
-
};
|
|
5406
|
-
var withVendorCSSClassPrefix_default = withVendorCSSClassPrefix;
|
|
5407
|
-
|
|
5408
5350
|
// src/AsgardeoBrowserClient.ts
|
|
5409
5351
|
var import_javascript11 = require("@asgardeo/javascript");
|
|
5410
5352
|
var AsgardeoBrowserClient = class extends import_javascript11.AsgardeoJavaScriptClient {
|