@nibssplc/cams-sdk-react 1.0.0-rc.133 → 1.0.0-rc.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -394,15 +394,42 @@ function useCAMSMSALAuth(options) {
394
394
  var optStorageKey = options.storageKey, optScopes = options.scopes, prompt = options.prompt, appCode = options.appCode, ValidateUserEndpoint = options.ValidateUserEndpoint, _a = options.activeCookiePeriod, activeCookiePeriod = _a === void 0 ? 1 : _a, _b = options.DisableCAMSUserProfileValidation, DisableCAMSUserProfileValidation = _b === void 0 ? false : _b;
395
395
  var storageKey = optStorageKey || "CAMS-MSAL-AUTH-SDK";
396
396
  var _c = useMsal(), instance = _c.instance, inProgress = _c.inProgress, accounts = _c.accounts;
397
- var account = useAccount(accounts[0] || {});
397
+ useAccount(accounts[0] || {});
398
+ var isTokenValid = function (token) {
399
+ try {
400
+ var payload = JSON.parse(atob(token.split(".")[1]));
401
+ return payload.exp * 1000 > Date.now();
402
+ }
403
+ catch (_a) {
404
+ return false;
405
+ }
406
+ };
407
+ var readFromStorage = function () {
408
+ var _a, _b, _c;
409
+ if (typeof window === "undefined")
410
+ return { accessToken: "", idToken: "", email: "" };
411
+ try {
412
+ var raw = localStorage.getItem(storageKey);
413
+ if (!raw)
414
+ return { accessToken: "", idToken: "", email: "" };
415
+ var parsed = JSON.parse(raw);
416
+ var token = (_a = parsed.accessToken) !== null && _a !== void 0 ? _a : "";
417
+ return isTokenValid(token)
418
+ ? { accessToken: token, idToken: (_b = parsed.idToken) !== null && _b !== void 0 ? _b : "", email: (_c = parsed.email) !== null && _c !== void 0 ? _c : "" }
419
+ : { accessToken: "", idToken: "", email: "" };
420
+ }
421
+ catch (_d) {
422
+ return { accessToken: "", idToken: "", email: "" };
423
+ }
424
+ };
398
425
  var _d = useState(null), error = _d[0], setError = _d[1];
399
- var _e = useState(""), idToken = _e[0], setIdToken = _e[1];
400
- var _f = useState(""), accessToken = _f[0], setAccessToken = _f[1];
401
- var _g = useState(""), email = _g[0], setEmail = _g[1];
426
+ var _e = useState(function () { return readFromStorage().idToken; }), idToken = _e[0], setIdToken = _e[1];
427
+ var _f = useState(function () { return readFromStorage().accessToken; }), accessToken = _f[0], setAccessToken = _f[1];
428
+ var _g = useState(function () { return readFromStorage().email; }), email = _g[0], setEmail = _g[1];
402
429
  var _h = useState(false), requiresMFA = _h[0], setRequiresMFA = _h[1];
403
430
  var _j = useState(false), isFetchingMFAConfig = _j[0], setIsFetchingMFAConfig = _j[1];
404
431
  var isLoading = inProgress !== InteractionStatus.None || isFetchingMFAConfig;
405
- var isAuthenticated = !!account && !!accessToken && !requiresMFA;
432
+ var isAuthenticated = !!accessToken && !requiresMFA;
406
433
  var scopes = optScopes || ["openid", "profile", "email"];
407
434
  var login = useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
408
435
  var response, authenticator, email_1, userConfig, camsError, error_1, err_1, camsError_1, camsError;
@@ -431,6 +458,7 @@ function useCAMSMSALAuth(options) {
431
458
  setIdToken(response.idToken);
432
459
  setEmail(email_1);
433
460
  setRequiresMFA(false);
461
+ localStorage.setItem(storageKey, JSON.stringify({ accessToken: response.accessToken, idToken: response.idToken, email: email_1, appCode: appCode }));
434
462
  Logger.info("CAMS User Profile Validation Disabled. Skipping MFA config fetch.");
435
463
  return [3 /*break*/, 7];
436
464
  case 3:
@@ -457,6 +485,7 @@ function useCAMSMSALAuth(options) {
457
485
  setIdToken(response.idToken);
458
486
  setEmail(userConfig.userInfo.email);
459
487
  setRequiresMFA(userConfig.userInfo.isMFAEnabled);
488
+ localStorage.setItem(storageKey, JSON.stringify({ accessToken: response.accessToken, idToken: response.idToken, email: userConfig.userInfo.email, appCode: appCode }));
460
489
  }
461
490
  else {
462
491
  camsError = new CAMSError(CAMSErrorType.API_VALIDATION_ERROR, "Login failed: " + userConfig.message);
@@ -554,6 +583,8 @@ function useCAMSMSALAuth(options) {
554
583
  setEmail("");
555
584
  setError(null);
556
585
  setRequiresMFA(false);
586
+ if (typeof window !== "undefined")
587
+ localStorage.removeItem(storageKey);
557
588
  }
558
589
  catch (err) {
559
590
  camsError = new CAMSError(CAMSErrorType.API_VALIDATION_ERROR, "Logout failed: " + err);