@cosmotech/core 1.18.0 → 1.18.2
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/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +12 -0
- package/dist/index.cjs.js +77 -44
- package/dist/index.esm.js +77 -44
- package/package.json +1 -1
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## **1.18.2** <sub><sup>2024-09-23 (e619d7e...e619d7e)</sup></sub>
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- fix empty user roles when using Keycloak auth provider ([e619d7e](https://github.com/Cosmo-Tech/webapp-component-core/commit/e619d7e))
|
|
6
|
+
|
|
7
|
+
## **1.18.1** <sub><sup>2024-09-17 (3629ee8...3629ee8)</sup></sub>
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- add mechanism to refresh tokens for Keycloak auth provider ([3629ee8](https://github.com/Cosmo-Tech/webapp-component-core/commit/3629ee8))
|
|
12
|
+
|
|
1
13
|
## **1.18.0** <sub><sup>2024-09-11 (cc08ecb...54ff3ae)</sup></sub>
|
|
2
14
|
|
|
3
15
|
### Features
|
package/dist/index.cjs.js
CHANGED
|
@@ -41408,6 +41408,22 @@ function isUserSignedIn$2(callback) {
|
|
|
41408
41408
|
}
|
|
41409
41409
|
return currentProvider.isUserSignedIn(callback);
|
|
41410
41410
|
}
|
|
41411
|
+
function refreshTokens$1() {
|
|
41412
|
+
return _refreshTokens.apply(this, arguments);
|
|
41413
|
+
}
|
|
41414
|
+
function _refreshTokens() {
|
|
41415
|
+
_refreshTokens = _asyncToGenerator(function* () {
|
|
41416
|
+
if (currentProvider === undefined) {
|
|
41417
|
+
return;
|
|
41418
|
+
}
|
|
41419
|
+
if (!currentProvider.refreshTokens) {
|
|
41420
|
+
console.warn('Method refreshTokens is not implemented in the current authentication provider');
|
|
41421
|
+
return;
|
|
41422
|
+
}
|
|
41423
|
+
return currentProvider.refreshTokens();
|
|
41424
|
+
});
|
|
41425
|
+
return _refreshTokens.apply(this, arguments);
|
|
41426
|
+
}
|
|
41411
41427
|
function getUserEmail$2() {
|
|
41412
41428
|
if (currentProvider === undefined) {
|
|
41413
41429
|
return undefined;
|
|
@@ -41445,6 +41461,7 @@ var Auth = {
|
|
|
41445
41461
|
signOut: signOut$2,
|
|
41446
41462
|
onAuthStateChanged,
|
|
41447
41463
|
isUserSignedIn: isUserSignedIn$2,
|
|
41464
|
+
refreshTokens: refreshTokens$1,
|
|
41448
41465
|
getUserEmail: getUserEmail$2,
|
|
41449
41466
|
getUserName: getUserName$2,
|
|
41450
41467
|
getUserId: getUserId$2,
|
|
@@ -57270,7 +57287,6 @@ var readFromStorage = key => localStorage.getItem(key);
|
|
|
57270
57287
|
var clearFromStorage = key => localStorage.removeItem(key);
|
|
57271
57288
|
var name = 'auth-keycloakRedirect';
|
|
57272
57289
|
var authData = {
|
|
57273
|
-
authenticated: readFromStorage('authAuthenticated') === 'true',
|
|
57274
57290
|
accountId: undefined,
|
|
57275
57291
|
userEmail: undefined,
|
|
57276
57292
|
username: undefined,
|
|
@@ -57303,7 +57319,7 @@ var redirectOnAuthSuccess = () => {
|
|
|
57303
57319
|
var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
57304
57320
|
var _ref2 = _asyncToGenerator(function* (tokenReq, account) {
|
|
57305
57321
|
if (!tokenReq) {
|
|
57306
|
-
console.warn('No
|
|
57322
|
+
console.warn('No token request provided');
|
|
57307
57323
|
tokenReq = {};
|
|
57308
57324
|
}
|
|
57309
57325
|
tokenReq.account = account;
|
|
@@ -57317,7 +57333,7 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
|
57317
57333
|
return;
|
|
57318
57334
|
} else if (((_silentTokenFetchErro = silentTokenFetchError.errorMessage) === null || _silentTokenFetchErro === void 0 ? void 0 : _silentTokenFetchErro.indexOf('interaction_required')) !== -1) {
|
|
57319
57335
|
msalApp.acquireTokenRedirect(tokenReq).then(tokenRes => tokenRes) // Token acquired with interaction
|
|
57320
|
-
.catch(tokenRedirectError => tokenRedirectError);
|
|
57336
|
+
.catch(tokenRedirectError => console.error(tokenRedirectError));
|
|
57321
57337
|
}
|
|
57322
57338
|
throw silentTokenFetchError;
|
|
57323
57339
|
});
|
|
@@ -57326,25 +57342,27 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
|
57326
57342
|
return _ref2.apply(this, arguments);
|
|
57327
57343
|
};
|
|
57328
57344
|
}();
|
|
57345
|
+
|
|
57346
|
+
// When forceRefresh is set to true, existing tokens in browser storage are ignored and new tokens are retrieved with
|
|
57347
|
+
// a silent request
|
|
57329
57348
|
var acquireTokens = /*#__PURE__*/function () {
|
|
57330
57349
|
var _ref3 = _asyncToGenerator(function* () {
|
|
57331
57350
|
var _msalApp$getAllAccoun;
|
|
57351
|
+
var forceRefresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
57332
57352
|
if (!checkInit()) return;
|
|
57333
|
-
|
|
57334
|
-
|
|
57335
|
-
|
|
57336
|
-
if (authenticated && idToken != null && accessToken != null) {
|
|
57353
|
+
if (!forceRefresh && readFromStorage('authAuthenticated') === 'true') {
|
|
57354
|
+
var idToken = readFromStorage('authIdToken');
|
|
57355
|
+
var accessToken = readFromStorage('authAccessToken');
|
|
57337
57356
|
return {
|
|
57338
57357
|
accessToken,
|
|
57339
57358
|
idToken
|
|
57340
57359
|
};
|
|
57341
57360
|
}
|
|
57342
57361
|
var account = (_msalApp$getAllAccoun = msalApp.getAllAccounts()) === null || _msalApp$getAllAccoun === void 0 ? void 0 : _msalApp$getAllAccoun[0];
|
|
57343
|
-
|
|
57344
|
-
|
|
57345
|
-
|
|
57346
|
-
|
|
57347
|
-
return yield _acquireTokensByRequestAndAccount(tokenReq, account);
|
|
57362
|
+
if (account === undefined) return;
|
|
57363
|
+
var tokens = yield _acquireTokensByRequestAndAccount(config.accessRequest, account);
|
|
57364
|
+
_updateTokensInStorage(tokens);
|
|
57365
|
+
return tokens;
|
|
57348
57366
|
});
|
|
57349
57367
|
return function acquireTokens() {
|
|
57350
57368
|
return _ref3.apply(this, arguments);
|
|
@@ -57353,12 +57371,10 @@ var acquireTokens = /*#__PURE__*/function () {
|
|
|
57353
57371
|
var handleResponse = response => {
|
|
57354
57372
|
if (response != null) {
|
|
57355
57373
|
var account = response.account;
|
|
57374
|
+
_updateTokensInStorage(response);
|
|
57356
57375
|
writeToStorage('authIdTokenPopup', response.idToken);
|
|
57357
|
-
writeToStorage('authIdToken', response.idToken);
|
|
57358
|
-
writeToStorage('authAccessToken', response.accessToken);
|
|
57359
57376
|
writeToStorage('authAuthenticated', 'true');
|
|
57360
57377
|
writeToStorage('authAccountId', account.homeAccountId);
|
|
57361
|
-
authData.authenticated = true;
|
|
57362
57378
|
authData.accountId = account.homeAccountId;
|
|
57363
57379
|
authData.userEmail = account.username; // In MSAL account data, username property contains user email
|
|
57364
57380
|
authData.username = account.name;
|
|
@@ -57398,50 +57414,56 @@ var signOut = () => {
|
|
|
57398
57414
|
var isAsync = () => {
|
|
57399
57415
|
return false;
|
|
57400
57416
|
};
|
|
57417
|
+
var _updateTokensInStorage = tokens => {
|
|
57418
|
+
if (tokens !== null && tokens !== void 0 && tokens.idToken) writeToStorage('authIdToken', tokens.idToken);
|
|
57419
|
+
if (tokens !== null && tokens !== void 0 && tokens.accessToken) {
|
|
57420
|
+
writeToStorage('authAccessToken', tokens.accessToken);
|
|
57421
|
+
authData.roles = _extractRolesFromAccessToken(tokens.accessToken);
|
|
57422
|
+
}
|
|
57423
|
+
};
|
|
57401
57424
|
var _extractRolesFromAccessToken = accessToken => {
|
|
57402
57425
|
var result = [];
|
|
57403
57426
|
if (accessToken) {
|
|
57404
57427
|
var decodedToken = JSON.parse(atob(accessToken.split('.')[1]));
|
|
57405
|
-
|
|
57406
|
-
|
|
57407
|
-
}
|
|
57428
|
+
// The exact key to use may depend from keycloak client & API configuration
|
|
57429
|
+
if (decodedToken !== null && decodedToken !== void 0 && decodedToken.roles) result = decodedToken.roles;else if (decodedToken !== null && decodedToken !== void 0 && decodedToken.userRoles) result = decodedToken.userRoles;
|
|
57408
57430
|
}
|
|
57409
57431
|
return result;
|
|
57410
57432
|
};
|
|
57411
57433
|
var isUserSignedIn = /*#__PURE__*/function () {
|
|
57412
57434
|
var _ref4 = _asyncToGenerator(function* () {
|
|
57413
|
-
if (authData.authenticated) return true;
|
|
57414
57435
|
if (readFromStorage('authAuthenticated') === 'true') {
|
|
57415
|
-
|
|
57436
|
+
// Restore roles from access token if necessary (roles in auhtData may be lost after login redirection)
|
|
57437
|
+
if (authData.roles.length === 0) {
|
|
57438
|
+
var accessToken = readFromStorage('authAccessToken');
|
|
57439
|
+
if (accessToken) authData.roles = _extractRolesFromAccessToken(accessToken);
|
|
57440
|
+
}
|
|
57416
57441
|
return true;
|
|
57417
57442
|
}
|
|
57418
|
-
|
|
57419
|
-
|
|
57420
|
-
|
|
57421
|
-
|
|
57422
|
-
|
|
57423
|
-
|
|
57424
|
-
|
|
57425
|
-
|
|
57426
|
-
|
|
57427
|
-
|
|
57428
|
-
|
|
57429
|
-
|
|
57430
|
-
|
|
57443
|
+
try {
|
|
57444
|
+
// Resume interaction if one is already in progress
|
|
57445
|
+
if (readFromStorage('authInteractionInProgress') === name) {
|
|
57446
|
+
clearFromStorage('authInteractionInProgress');
|
|
57447
|
+
var locationHashParameters = new URLSearchParams(window.location.hash.substring(1));
|
|
57448
|
+
if (locationHashParameters.has('state')) {
|
|
57449
|
+
var _config2;
|
|
57450
|
+
if (locationHashParameters.has('iss', (_config2 = config) === null || _config2 === void 0 || (_config2 = _config2.msalConfig) === null || _config2 === void 0 || (_config2 = _config2.auth) === null || _config2 === void 0 || (_config2 = _config2.authorityMetadata) === null || _config2 === void 0 ? void 0 : _config2.issuer)) {
|
|
57451
|
+
msalApp.handleRedirectPromise().then(handleResponse); // Resume redirect workflow process
|
|
57452
|
+
} else if (locationHashParameters.has('iss')) {
|
|
57453
|
+
var _config3;
|
|
57454
|
+
var configIssuer = (_config3 = config) === null || _config3 === void 0 || (_config3 = _config3.msalConfig) === null || _config3 === void 0 || (_config3 = _config3.auth) === null || _config3 === void 0 || (_config3 = _config3.authorityMetadata) === null || _config3 === void 0 ? void 0 : _config3.issuer;
|
|
57455
|
+
var urlIssuer = locationHashParameters.get('iss');
|
|
57456
|
+
console.warn("Issuer found in url \"".concat(urlIssuer, "\" does not match keycloak configuration: \"").concat(configIssuer, "\""));
|
|
57457
|
+
}
|
|
57431
57458
|
}
|
|
57432
57459
|
}
|
|
57433
|
-
}
|
|
57434
57460
|
|
|
57435
|
-
|
|
57436
|
-
|
|
57437
|
-
|
|
57438
|
-
|
|
57439
|
-
}
|
|
57440
|
-
|
|
57441
|
-
var accessToken = tokens.accessToken;
|
|
57442
|
-
authData.roles = _extractRolesFromAccessToken(accessToken);
|
|
57443
|
-
writeToStorage('authAccessToken', accessToken);
|
|
57444
|
-
return true;
|
|
57461
|
+
// Otherwise, try to acquire a token silently to implement SSO
|
|
57462
|
+
var tokens = yield acquireTokens();
|
|
57463
|
+
_updateTokensInStorage(tokens);
|
|
57464
|
+
if ((tokens === null || tokens === void 0 ? void 0 : tokens.accessToken) !== undefined) return true;
|
|
57465
|
+
} catch (e) {
|
|
57466
|
+
console.error(e);
|
|
57445
57467
|
}
|
|
57446
57468
|
return false;
|
|
57447
57469
|
});
|
|
@@ -57449,6 +57471,16 @@ var isUserSignedIn = /*#__PURE__*/function () {
|
|
|
57449
57471
|
return _ref4.apply(this, arguments);
|
|
57450
57472
|
};
|
|
57451
57473
|
}();
|
|
57474
|
+
var refreshTokens = /*#__PURE__*/function () {
|
|
57475
|
+
var _ref5 = _asyncToGenerator(function* () {
|
|
57476
|
+
var tokens = yield acquireTokens(true);
|
|
57477
|
+
_updateTokensInStorage(tokens);
|
|
57478
|
+
return tokens;
|
|
57479
|
+
});
|
|
57480
|
+
return function refreshTokens() {
|
|
57481
|
+
return _ref5.apply(this, arguments);
|
|
57482
|
+
};
|
|
57483
|
+
}();
|
|
57452
57484
|
var getUserEmail = () => {
|
|
57453
57485
|
var _authData$userEmail, _msalApp$getAllAccoun2;
|
|
57454
57486
|
if (!checkInit()) return;
|
|
@@ -57484,6 +57516,7 @@ var AuthKeycloakRedirect = /*#__PURE__*/Object.freeze({
|
|
|
57484
57516
|
isAsync: isAsync,
|
|
57485
57517
|
isUserSignedIn: isUserSignedIn,
|
|
57486
57518
|
name: name,
|
|
57519
|
+
refreshTokens: refreshTokens,
|
|
57487
57520
|
setConfig: setConfig,
|
|
57488
57521
|
signIn: signIn,
|
|
57489
57522
|
signOut: signOut
|
package/dist/index.esm.js
CHANGED
|
@@ -41406,6 +41406,22 @@ function isUserSignedIn$2(callback) {
|
|
|
41406
41406
|
}
|
|
41407
41407
|
return currentProvider.isUserSignedIn(callback);
|
|
41408
41408
|
}
|
|
41409
|
+
function refreshTokens$1() {
|
|
41410
|
+
return _refreshTokens.apply(this, arguments);
|
|
41411
|
+
}
|
|
41412
|
+
function _refreshTokens() {
|
|
41413
|
+
_refreshTokens = _asyncToGenerator(function* () {
|
|
41414
|
+
if (currentProvider === undefined) {
|
|
41415
|
+
return;
|
|
41416
|
+
}
|
|
41417
|
+
if (!currentProvider.refreshTokens) {
|
|
41418
|
+
console.warn('Method refreshTokens is not implemented in the current authentication provider');
|
|
41419
|
+
return;
|
|
41420
|
+
}
|
|
41421
|
+
return currentProvider.refreshTokens();
|
|
41422
|
+
});
|
|
41423
|
+
return _refreshTokens.apply(this, arguments);
|
|
41424
|
+
}
|
|
41409
41425
|
function getUserEmail$2() {
|
|
41410
41426
|
if (currentProvider === undefined) {
|
|
41411
41427
|
return undefined;
|
|
@@ -41443,6 +41459,7 @@ var Auth = {
|
|
|
41443
41459
|
signOut: signOut$2,
|
|
41444
41460
|
onAuthStateChanged,
|
|
41445
41461
|
isUserSignedIn: isUserSignedIn$2,
|
|
41462
|
+
refreshTokens: refreshTokens$1,
|
|
41446
41463
|
getUserEmail: getUserEmail$2,
|
|
41447
41464
|
getUserName: getUserName$2,
|
|
41448
41465
|
getUserId: getUserId$2,
|
|
@@ -57268,7 +57285,6 @@ var readFromStorage = key => localStorage.getItem(key);
|
|
|
57268
57285
|
var clearFromStorage = key => localStorage.removeItem(key);
|
|
57269
57286
|
var name = 'auth-keycloakRedirect';
|
|
57270
57287
|
var authData = {
|
|
57271
|
-
authenticated: readFromStorage('authAuthenticated') === 'true',
|
|
57272
57288
|
accountId: undefined,
|
|
57273
57289
|
userEmail: undefined,
|
|
57274
57290
|
username: undefined,
|
|
@@ -57301,7 +57317,7 @@ var redirectOnAuthSuccess = () => {
|
|
|
57301
57317
|
var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
57302
57318
|
var _ref2 = _asyncToGenerator(function* (tokenReq, account) {
|
|
57303
57319
|
if (!tokenReq) {
|
|
57304
|
-
console.warn('No
|
|
57320
|
+
console.warn('No token request provided');
|
|
57305
57321
|
tokenReq = {};
|
|
57306
57322
|
}
|
|
57307
57323
|
tokenReq.account = account;
|
|
@@ -57315,7 +57331,7 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
|
57315
57331
|
return;
|
|
57316
57332
|
} else if (((_silentTokenFetchErro = silentTokenFetchError.errorMessage) === null || _silentTokenFetchErro === void 0 ? void 0 : _silentTokenFetchErro.indexOf('interaction_required')) !== -1) {
|
|
57317
57333
|
msalApp.acquireTokenRedirect(tokenReq).then(tokenRes => tokenRes) // Token acquired with interaction
|
|
57318
|
-
.catch(tokenRedirectError => tokenRedirectError);
|
|
57334
|
+
.catch(tokenRedirectError => console.error(tokenRedirectError));
|
|
57319
57335
|
}
|
|
57320
57336
|
throw silentTokenFetchError;
|
|
57321
57337
|
});
|
|
@@ -57324,25 +57340,27 @@ var _acquireTokensByRequestAndAccount = /*#__PURE__*/function () {
|
|
|
57324
57340
|
return _ref2.apply(this, arguments);
|
|
57325
57341
|
};
|
|
57326
57342
|
}();
|
|
57343
|
+
|
|
57344
|
+
// When forceRefresh is set to true, existing tokens in browser storage are ignored and new tokens are retrieved with
|
|
57345
|
+
// a silent request
|
|
57327
57346
|
var acquireTokens = /*#__PURE__*/function () {
|
|
57328
57347
|
var _ref3 = _asyncToGenerator(function* () {
|
|
57329
57348
|
var _msalApp$getAllAccoun;
|
|
57349
|
+
var forceRefresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
57330
57350
|
if (!checkInit()) return;
|
|
57331
|
-
|
|
57332
|
-
|
|
57333
|
-
|
|
57334
|
-
if (authenticated && idToken != null && accessToken != null) {
|
|
57351
|
+
if (!forceRefresh && readFromStorage('authAuthenticated') === 'true') {
|
|
57352
|
+
var idToken = readFromStorage('authIdToken');
|
|
57353
|
+
var accessToken = readFromStorage('authAccessToken');
|
|
57335
57354
|
return {
|
|
57336
57355
|
accessToken,
|
|
57337
57356
|
idToken
|
|
57338
57357
|
};
|
|
57339
57358
|
}
|
|
57340
57359
|
var account = (_msalApp$getAllAccoun = msalApp.getAllAccounts()) === null || _msalApp$getAllAccoun === void 0 ? void 0 : _msalApp$getAllAccoun[0];
|
|
57341
|
-
|
|
57342
|
-
|
|
57343
|
-
|
|
57344
|
-
|
|
57345
|
-
return yield _acquireTokensByRequestAndAccount(tokenReq, account);
|
|
57360
|
+
if (account === undefined) return;
|
|
57361
|
+
var tokens = yield _acquireTokensByRequestAndAccount(config.accessRequest, account);
|
|
57362
|
+
_updateTokensInStorage(tokens);
|
|
57363
|
+
return tokens;
|
|
57346
57364
|
});
|
|
57347
57365
|
return function acquireTokens() {
|
|
57348
57366
|
return _ref3.apply(this, arguments);
|
|
@@ -57351,12 +57369,10 @@ var acquireTokens = /*#__PURE__*/function () {
|
|
|
57351
57369
|
var handleResponse = response => {
|
|
57352
57370
|
if (response != null) {
|
|
57353
57371
|
var account = response.account;
|
|
57372
|
+
_updateTokensInStorage(response);
|
|
57354
57373
|
writeToStorage('authIdTokenPopup', response.idToken);
|
|
57355
|
-
writeToStorage('authIdToken', response.idToken);
|
|
57356
|
-
writeToStorage('authAccessToken', response.accessToken);
|
|
57357
57374
|
writeToStorage('authAuthenticated', 'true');
|
|
57358
57375
|
writeToStorage('authAccountId', account.homeAccountId);
|
|
57359
|
-
authData.authenticated = true;
|
|
57360
57376
|
authData.accountId = account.homeAccountId;
|
|
57361
57377
|
authData.userEmail = account.username; // In MSAL account data, username property contains user email
|
|
57362
57378
|
authData.username = account.name;
|
|
@@ -57396,50 +57412,56 @@ var signOut = () => {
|
|
|
57396
57412
|
var isAsync = () => {
|
|
57397
57413
|
return false;
|
|
57398
57414
|
};
|
|
57415
|
+
var _updateTokensInStorage = tokens => {
|
|
57416
|
+
if (tokens !== null && tokens !== void 0 && tokens.idToken) writeToStorage('authIdToken', tokens.idToken);
|
|
57417
|
+
if (tokens !== null && tokens !== void 0 && tokens.accessToken) {
|
|
57418
|
+
writeToStorage('authAccessToken', tokens.accessToken);
|
|
57419
|
+
authData.roles = _extractRolesFromAccessToken(tokens.accessToken);
|
|
57420
|
+
}
|
|
57421
|
+
};
|
|
57399
57422
|
var _extractRolesFromAccessToken = accessToken => {
|
|
57400
57423
|
var result = [];
|
|
57401
57424
|
if (accessToken) {
|
|
57402
57425
|
var decodedToken = JSON.parse(atob(accessToken.split('.')[1]));
|
|
57403
|
-
|
|
57404
|
-
|
|
57405
|
-
}
|
|
57426
|
+
// The exact key to use may depend from keycloak client & API configuration
|
|
57427
|
+
if (decodedToken !== null && decodedToken !== void 0 && decodedToken.roles) result = decodedToken.roles;else if (decodedToken !== null && decodedToken !== void 0 && decodedToken.userRoles) result = decodedToken.userRoles;
|
|
57406
57428
|
}
|
|
57407
57429
|
return result;
|
|
57408
57430
|
};
|
|
57409
57431
|
var isUserSignedIn = /*#__PURE__*/function () {
|
|
57410
57432
|
var _ref4 = _asyncToGenerator(function* () {
|
|
57411
|
-
if (authData.authenticated) return true;
|
|
57412
57433
|
if (readFromStorage('authAuthenticated') === 'true') {
|
|
57413
|
-
|
|
57434
|
+
// Restore roles from access token if necessary (roles in auhtData may be lost after login redirection)
|
|
57435
|
+
if (authData.roles.length === 0) {
|
|
57436
|
+
var accessToken = readFromStorage('authAccessToken');
|
|
57437
|
+
if (accessToken) authData.roles = _extractRolesFromAccessToken(accessToken);
|
|
57438
|
+
}
|
|
57414
57439
|
return true;
|
|
57415
57440
|
}
|
|
57416
|
-
|
|
57417
|
-
|
|
57418
|
-
|
|
57419
|
-
|
|
57420
|
-
|
|
57421
|
-
|
|
57422
|
-
|
|
57423
|
-
|
|
57424
|
-
|
|
57425
|
-
|
|
57426
|
-
|
|
57427
|
-
|
|
57428
|
-
|
|
57441
|
+
try {
|
|
57442
|
+
// Resume interaction if one is already in progress
|
|
57443
|
+
if (readFromStorage('authInteractionInProgress') === name) {
|
|
57444
|
+
clearFromStorage('authInteractionInProgress');
|
|
57445
|
+
var locationHashParameters = new URLSearchParams(window.location.hash.substring(1));
|
|
57446
|
+
if (locationHashParameters.has('state')) {
|
|
57447
|
+
var _config2;
|
|
57448
|
+
if (locationHashParameters.has('iss', (_config2 = config) === null || _config2 === void 0 || (_config2 = _config2.msalConfig) === null || _config2 === void 0 || (_config2 = _config2.auth) === null || _config2 === void 0 || (_config2 = _config2.authorityMetadata) === null || _config2 === void 0 ? void 0 : _config2.issuer)) {
|
|
57449
|
+
msalApp.handleRedirectPromise().then(handleResponse); // Resume redirect workflow process
|
|
57450
|
+
} else if (locationHashParameters.has('iss')) {
|
|
57451
|
+
var _config3;
|
|
57452
|
+
var configIssuer = (_config3 = config) === null || _config3 === void 0 || (_config3 = _config3.msalConfig) === null || _config3 === void 0 || (_config3 = _config3.auth) === null || _config3 === void 0 || (_config3 = _config3.authorityMetadata) === null || _config3 === void 0 ? void 0 : _config3.issuer;
|
|
57453
|
+
var urlIssuer = locationHashParameters.get('iss');
|
|
57454
|
+
console.warn("Issuer found in url \"".concat(urlIssuer, "\" does not match keycloak configuration: \"").concat(configIssuer, "\""));
|
|
57455
|
+
}
|
|
57429
57456
|
}
|
|
57430
57457
|
}
|
|
57431
|
-
}
|
|
57432
57458
|
|
|
57433
|
-
|
|
57434
|
-
|
|
57435
|
-
|
|
57436
|
-
|
|
57437
|
-
}
|
|
57438
|
-
|
|
57439
|
-
var accessToken = tokens.accessToken;
|
|
57440
|
-
authData.roles = _extractRolesFromAccessToken(accessToken);
|
|
57441
|
-
writeToStorage('authAccessToken', accessToken);
|
|
57442
|
-
return true;
|
|
57459
|
+
// Otherwise, try to acquire a token silently to implement SSO
|
|
57460
|
+
var tokens = yield acquireTokens();
|
|
57461
|
+
_updateTokensInStorage(tokens);
|
|
57462
|
+
if ((tokens === null || tokens === void 0 ? void 0 : tokens.accessToken) !== undefined) return true;
|
|
57463
|
+
} catch (e) {
|
|
57464
|
+
console.error(e);
|
|
57443
57465
|
}
|
|
57444
57466
|
return false;
|
|
57445
57467
|
});
|
|
@@ -57447,6 +57469,16 @@ var isUserSignedIn = /*#__PURE__*/function () {
|
|
|
57447
57469
|
return _ref4.apply(this, arguments);
|
|
57448
57470
|
};
|
|
57449
57471
|
}();
|
|
57472
|
+
var refreshTokens = /*#__PURE__*/function () {
|
|
57473
|
+
var _ref5 = _asyncToGenerator(function* () {
|
|
57474
|
+
var tokens = yield acquireTokens(true);
|
|
57475
|
+
_updateTokensInStorage(tokens);
|
|
57476
|
+
return tokens;
|
|
57477
|
+
});
|
|
57478
|
+
return function refreshTokens() {
|
|
57479
|
+
return _ref5.apply(this, arguments);
|
|
57480
|
+
};
|
|
57481
|
+
}();
|
|
57450
57482
|
var getUserEmail = () => {
|
|
57451
57483
|
var _authData$userEmail, _msalApp$getAllAccoun2;
|
|
57452
57484
|
if (!checkInit()) return;
|
|
@@ -57482,6 +57514,7 @@ var AuthKeycloakRedirect = /*#__PURE__*/Object.freeze({
|
|
|
57482
57514
|
isAsync: isAsync,
|
|
57483
57515
|
isUserSignedIn: isUserSignedIn,
|
|
57484
57516
|
name: name,
|
|
57517
|
+
refreshTokens: refreshTokens,
|
|
57485
57518
|
setConfig: setConfig,
|
|
57486
57519
|
signIn: signIn,
|
|
57487
57520
|
signOut: signOut
|