@frontegg/redux-store 5.66.2 → 5.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,6 +35,7 @@ declare const reducers: {
35
35
  tenantsState: import("..").TenantsState;
36
36
  rolesState: import("..").RolesState;
37
37
  sessionsState: import("..").SessionsState;
38
+ hostedLoginBox?: boolean | undefined;
38
39
  routes: import("..").AuthPageRoutes;
39
40
  header?: any;
40
41
  loaderComponent?: any;
@@ -66,6 +67,7 @@ declare const reducers: {
66
67
  tenantsState: import("..").TenantsState;
67
68
  rolesState: import("..").RolesState;
68
69
  sessionsState: import("..").SessionsState;
70
+ hostedLoginBox?: boolean | undefined;
69
71
  routes: import("..").AuthPageRoutes;
70
72
  header?: any;
71
73
  loaderComponent?: any;
@@ -36,6 +36,7 @@ declare const reducers: {
36
36
  tenantsState: import("..").TenantsState;
37
37
  rolesState: import("..").RolesState;
38
38
  sessionsState: import("..").SessionsState;
39
+ hostedLoginBox?: boolean | undefined;
39
40
  routes: import("..").AuthPageRoutes;
40
41
  header?: any;
41
42
  loaderComponent?: any;
@@ -67,6 +68,7 @@ declare const reducers: {
67
68
  tenantsState: import("..").TenantsState;
68
69
  rolesState: import("..").RolesState;
69
70
  sessionsState: import("..").SessionsState;
71
+ hostedLoginBox?: boolean | undefined;
70
72
  routes: import("..").AuthPageRoutes;
71
73
  header?: any;
72
74
  loaderComponent?: any;
@@ -36,6 +36,7 @@ declare const reducers: {
36
36
  tenantsState: import("..").TenantsState;
37
37
  rolesState: import("..").RolesState;
38
38
  sessionsState: import("..").SessionsState;
39
+ hostedLoginBox?: boolean | undefined;
39
40
  routes: import("..").AuthPageRoutes;
40
41
  header?: any;
41
42
  loaderComponent?: any;
@@ -67,6 +68,7 @@ declare const reducers: {
67
68
  tenantsState: import("..").TenantsState;
68
69
  rolesState: import("..").RolesState;
69
70
  sessionsState: import("..").SessionsState;
71
+ hostedLoginBox?: boolean | undefined;
70
72
  routes: import("..").AuthPageRoutes;
71
73
  header?: any;
72
74
  loaderComponent?: any;
@@ -104,6 +106,7 @@ declare const reducers: {
104
106
  tenantsState: import("..").TenantsState;
105
107
  rolesState: import("..").RolesState;
106
108
  sessionsState: import("..").SessionsState;
109
+ hostedLoginBox?: boolean | undefined;
107
110
  routes: import("..").AuthPageRoutes;
108
111
  header?: any;
109
112
  loaderComponent?: any;
@@ -53,6 +53,7 @@ declare const reducers: {
53
53
  tenantsState: import("..").TenantsState;
54
54
  rolesState: import("..").RolesState;
55
55
  sessionsState: import("..").SessionsState;
56
+ hostedLoginBox?: boolean | undefined;
56
57
  routes: import("..").AuthPageRoutes;
57
58
  header?: any;
58
59
  loaderComponent?: any;
@@ -84,6 +85,7 @@ declare const reducers: {
84
85
  tenantsState: import("..").TenantsState;
85
86
  rolesState: import("..").RolesState;
86
87
  sessionsState: import("..").SessionsState;
88
+ hostedLoginBox?: boolean | undefined;
87
89
  routes: import("..").AuthPageRoutes;
88
90
  header?: any;
89
91
  loaderComponent?: any;
@@ -36,6 +36,7 @@ declare const reducers: {
36
36
  tenantsState: import("..").TenantsState;
37
37
  rolesState: import("..").RolesState;
38
38
  sessionsState: import("..").SessionsState;
39
+ hostedLoginBox?: boolean | undefined;
39
40
  routes: import("..").AuthPageRoutes;
40
41
  header?: any;
41
42
  loaderComponent?: any;
@@ -67,6 +68,7 @@ declare const reducers: {
67
68
  tenantsState: import("..").TenantsState;
68
69
  rolesState: import("..").RolesState;
69
70
  sessionsState: import("..").SessionsState;
71
+ hostedLoginBox?: boolean | undefined;
70
72
  routes: import("..").AuthPageRoutes;
71
73
  header?: any;
72
74
  loaderComponent?: any;
@@ -37,6 +37,7 @@ declare const reducers: {
37
37
  tenantsState: import("..").TenantsState;
38
38
  rolesState: import("..").RolesState;
39
39
  sessionsState: import("..").SessionsState;
40
+ hostedLoginBox?: boolean | undefined;
40
41
  routes: import("..").AuthPageRoutes;
41
42
  header?: any;
42
43
  loaderComponent?: any;
@@ -68,6 +69,7 @@ declare const reducers: {
68
69
  tenantsState: import("..").TenantsState;
69
70
  rolesState: import("..").RolesState;
70
71
  sessionsState: import("..").SessionsState;
72
+ hostedLoginBox?: boolean | undefined;
71
73
  routes: import("..").AuthPageRoutes;
72
74
  header?: any;
73
75
  loaderComponent?: any;
@@ -46,7 +46,7 @@ export declare function getMfaRequiredState(user: any): Generator<import("redux-
46
46
  isAllowedToRemember: any;
47
47
  mfaDeviceExpiration: any;
48
48
  }>;
49
- export declare function refreshToken(): Generator<import("redux-saga/effects").SelectEffect | Generator<import("redux-saga/effects").SelectEffect | CallEffect<true>, void, {
49
+ export declare function refreshToken(): Generator<import("redux-saga/effects").SelectEffect | CallEffect<void> | CallEffect<Generator<import("redux-saga/effects").SelectEffect | Generator<import("redux-saga/effects").SelectEffect | CallEffect<true>, void, {
50
50
  routes: any;
51
51
  includeQueryParam: any;
52
52
  }> | import("redux-saga/effects").PutEffect<{
@@ -81,6 +81,6 @@ export declare function refreshToken(): Generator<import("redux-saga/effects").S
81
81
  }> | CallEffect<ILoginResponseV2> | import("redux-saga/effects").PutEffect<{
82
82
  payload: Partial<import("../..").TenantsState>;
83
83
  type: string;
84
- }>, void, AuthState & ILoginResponseV2 & Partial<AuthState>>;
84
+ }>, void, AuthState & ILoginResponseV2 & Partial<AuthState>>>, void, AuthState>;
85
85
  export declare function loginSagas(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
86
86
  export declare function loginSagasMock(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
@@ -40,6 +40,7 @@ declare const reducers: {
40
40
  tenantsState: import("..").TenantsState;
41
41
  rolesState: import("..").RolesState;
42
42
  sessionsState: import("..").SessionsState;
43
+ hostedLoginBox?: boolean | undefined;
43
44
  routes: import("..").AuthPageRoutes;
44
45
  header?: any;
45
46
  loaderComponent?: any;
@@ -75,6 +76,7 @@ declare const reducers: {
75
76
  tenantsState: import("..").TenantsState;
76
77
  rolesState: import("..").RolesState;
77
78
  sessionsState: import("..").SessionsState;
79
+ hostedLoginBox?: boolean | undefined;
78
80
  routes: import("..").AuthPageRoutes;
79
81
  header?: any;
80
82
  loaderComponent?: any;
@@ -36,6 +36,7 @@ declare const reducers: {
36
36
  tenantsState: import("..").TenantsState;
37
37
  rolesState: import("..").RolesState;
38
38
  sessionsState: import("..").SessionsState;
39
+ hostedLoginBox?: boolean | undefined;
39
40
  routes: import("..").AuthPageRoutes;
40
41
  header?: any;
41
42
  loaderComponent?: any;
@@ -67,6 +68,7 @@ declare const reducers: {
67
68
  tenantsState: import("..").TenantsState;
68
69
  rolesState: import("..").RolesState;
69
70
  sessionsState: import("..").SessionsState;
71
+ hostedLoginBox?: boolean | undefined;
70
72
  routes: import("..").AuthPageRoutes;
71
73
  header?: any;
72
74
  loaderComponent?: any;
@@ -36,6 +36,7 @@ declare const reducers: {
36
36
  tenantsState: import("..").TenantsState;
37
37
  rolesState: import("..").RolesState;
38
38
  sessionsState: import("..").SessionsState;
39
+ hostedLoginBox?: boolean | undefined;
39
40
  routes: import("..").AuthPageRoutes;
40
41
  header?: any;
41
42
  loaderComponent?: any;
@@ -67,6 +68,7 @@ declare const reducers: {
67
68
  tenantsState: import("..").TenantsState;
68
69
  rolesState: import("..").RolesState;
69
70
  sessionsState: import("..").SessionsState;
71
+ hostedLoginBox?: boolean | undefined;
70
72
  routes: import("..").AuthPageRoutes;
71
73
  header?: any;
72
74
  loaderComponent?: any;
@@ -36,6 +36,7 @@ declare const reducers: {
36
36
  tenantsState: import("..").TenantsState;
37
37
  rolesState: RolesState;
38
38
  sessionsState: import("..").SessionsState;
39
+ hostedLoginBox?: boolean | undefined;
39
40
  routes: import("..").AuthPageRoutes;
40
41
  header?: any;
41
42
  loaderComponent?: any;
@@ -67,6 +68,7 @@ declare const reducers: {
67
68
  tenantsState: import("..").TenantsState;
68
69
  rolesState: RolesState;
69
70
  sessionsState: import("..").SessionsState;
71
+ hostedLoginBox?: boolean | undefined;
70
72
  routes: import("..").AuthPageRoutes;
71
73
  header?: any;
72
74
  loaderComponent?: any;
@@ -54,6 +54,7 @@ declare const reducers: {
54
54
  tenantsState: import("..").TenantsState;
55
55
  rolesState: import("..").RolesState;
56
56
  sessionsState: import("..").SessionsState;
57
+ hostedLoginBox?: boolean | undefined;
57
58
  routes: import("..").AuthPageRoutes;
58
59
  header?: any;
59
60
  loaderComponent?: any;
@@ -85,6 +86,7 @@ declare const reducers: {
85
86
  tenantsState: import("..").TenantsState;
86
87
  rolesState: import("..").RolesState;
87
88
  sessionsState: import("..").SessionsState;
89
+ hostedLoginBox?: boolean | undefined;
88
90
  routes: import("..").AuthPageRoutes;
89
91
  header?: any;
90
92
  loaderComponent?: any;
@@ -34,6 +34,7 @@ declare const reducers: {
34
34
  tenantsState: import("..").TenantsState;
35
35
  rolesState: import("..").RolesState;
36
36
  sessionsState: import("..").SessionsState;
37
+ hostedLoginBox?: boolean | undefined;
37
38
  routes: import("..").AuthPageRoutes;
38
39
  header?: any;
39
40
  loaderComponent?: any;
@@ -78,6 +79,7 @@ declare const reducers: {
78
79
  tenantsState: import("..").TenantsState;
79
80
  rolesState: import("..").RolesState;
80
81
  sessionsState: import("..").SessionsState;
82
+ hostedLoginBox?: boolean | undefined;
81
83
  routes: import("..").AuthPageRoutes;
82
84
  header?: any;
83
85
  loaderComponent?: any;
@@ -122,6 +124,7 @@ declare const reducers: {
122
124
  tenantsState: import("..").TenantsState;
123
125
  rolesState: import("..").RolesState;
124
126
  sessionsState: import("..").SessionsState;
127
+ hostedLoginBox?: boolean | undefined;
125
128
  routes: import("..").AuthPageRoutes;
126
129
  header?: any;
127
130
  loaderComponent?: any;
@@ -166,6 +169,7 @@ declare const reducers: {
166
169
  tenantsState: import("..").TenantsState;
167
170
  rolesState: import("..").RolesState;
168
171
  sessionsState: import("..").SessionsState;
172
+ hostedLoginBox?: boolean | undefined;
169
173
  routes: import("..").AuthPageRoutes;
170
174
  header?: any;
171
175
  loaderComponent?: any;
@@ -210,6 +214,7 @@ declare const reducers: {
210
214
  tenantsState: import("..").TenantsState;
211
215
  rolesState: import("..").RolesState;
212
216
  sessionsState: import("..").SessionsState;
217
+ hostedLoginBox?: boolean | undefined;
213
218
  routes: import("..").AuthPageRoutes;
214
219
  header?: any;
215
220
  loaderComponent?: any;
@@ -254,6 +259,7 @@ declare const reducers: {
254
259
  tenantsState: import("..").TenantsState;
255
260
  rolesState: import("..").RolesState;
256
261
  sessionsState: import("..").SessionsState;
262
+ hostedLoginBox?: boolean | undefined;
257
263
  routes: import("..").AuthPageRoutes;
258
264
  header?: any;
259
265
  loaderComponent?: any;
@@ -298,6 +304,7 @@ declare const reducers: {
298
304
  tenantsState: import("..").TenantsState;
299
305
  rolesState: import("..").RolesState;
300
306
  sessionsState: import("..").SessionsState;
307
+ hostedLoginBox?: boolean | undefined;
301
308
  routes: import("..").AuthPageRoutes;
302
309
  header?: any;
303
310
  loaderComponent?: any;
@@ -342,6 +349,7 @@ declare const reducers: {
342
349
  tenantsState: import("..").TenantsState;
343
350
  rolesState: import("..").RolesState;
344
351
  sessionsState: import("..").SessionsState;
352
+ hostedLoginBox?: boolean | undefined;
345
353
  routes: import("..").AuthPageRoutes;
346
354
  header?: any;
347
355
  loaderComponent?: any;
@@ -386,6 +394,7 @@ declare const reducers: {
386
394
  tenantsState: import("..").TenantsState;
387
395
  rolesState: import("..").RolesState;
388
396
  sessionsState: import("..").SessionsState;
397
+ hostedLoginBox?: boolean | undefined;
389
398
  routes: import("..").AuthPageRoutes;
390
399
  header?: any;
391
400
  loaderComponent?: any;
@@ -430,6 +439,7 @@ declare const reducers: {
430
439
  tenantsState: import("..").TenantsState;
431
440
  rolesState: import("..").RolesState;
432
441
  sessionsState: import("..").SessionsState;
442
+ hostedLoginBox?: boolean | undefined;
433
443
  routes: import("..").AuthPageRoutes;
434
444
  header?: any;
435
445
  loaderComponent?: any;
@@ -461,6 +471,7 @@ declare const reducers: {
461
471
  tenantsState: import("..").TenantsState;
462
472
  rolesState: import("..").RolesState;
463
473
  sessionsState: import("..").SessionsState;
474
+ hostedLoginBox?: boolean | undefined;
464
475
  routes: import("..").AuthPageRoutes;
465
476
  header?: any;
466
477
  loaderComponent?: any;
@@ -34,6 +34,7 @@ declare const reducers: {
34
34
  tenantsState: import("..").TenantsState;
35
35
  rolesState: import("..").RolesState;
36
36
  sessionsState: SessionsState;
37
+ hostedLoginBox?: boolean | undefined;
37
38
  routes: import("..").AuthPageRoutes;
38
39
  header?: any;
39
40
  loaderComponent?: any;
@@ -65,6 +66,7 @@ declare const reducers: {
65
66
  tenantsState: import("..").TenantsState;
66
67
  rolesState: import("..").RolesState;
67
68
  sessionsState: SessionsState;
69
+ hostedLoginBox?: boolean | undefined;
68
70
  routes: import("..").AuthPageRoutes;
69
71
  header?: any;
70
72
  loaderComponent?: any;
@@ -34,6 +34,7 @@ declare const reducers: {
34
34
  tenantsState: import("..").TenantsState;
35
35
  rolesState: import("..").RolesState;
36
36
  sessionsState: import("..").SessionsState;
37
+ hostedLoginBox?: boolean | undefined;
37
38
  routes: import("..").AuthPageRoutes;
38
39
  header?: any;
39
40
  loaderComponent?: any;
@@ -65,6 +66,7 @@ declare const reducers: {
65
66
  tenantsState: import("..").TenantsState;
66
67
  rolesState: import("..").RolesState;
67
68
  sessionsState: import("..").SessionsState;
69
+ hostedLoginBox?: boolean | undefined;
68
70
  routes: import("..").AuthPageRoutes;
69
71
  header?: any;
70
72
  loaderComponent?: any;
@@ -35,6 +35,7 @@ declare const reducers: {
35
35
  tenantsState: import("..").TenantsState;
36
36
  rolesState: import("..").RolesState;
37
37
  sessionsState: import("..").SessionsState;
38
+ hostedLoginBox?: boolean | undefined;
38
39
  routes: import("..").AuthPageRoutes;
39
40
  header?: any;
40
41
  loaderComponent?: any;
@@ -66,6 +67,7 @@ declare const reducers: {
66
67
  tenantsState: import("..").TenantsState;
67
68
  rolesState: import("..").RolesState;
68
69
  sessionsState: import("..").SessionsState;
70
+ hostedLoginBox?: boolean | undefined;
69
71
  routes: import("..").AuthPageRoutes;
70
72
  header?: any;
71
73
  loaderComponent?: any;
@@ -54,6 +54,7 @@ declare const reducers: {
54
54
  tenantsState: import("..").TenantsState;
55
55
  rolesState: import("..").RolesState;
56
56
  sessionsState: import("..").SessionsState;
57
+ hostedLoginBox?: boolean | undefined;
57
58
  routes: import("..").AuthPageRoutes;
58
59
  header?: any;
59
60
  loaderComponent?: any;
@@ -85,6 +86,7 @@ declare const reducers: {
85
86
  tenantsState: import("..").TenantsState;
86
87
  rolesState: import("..").RolesState;
87
88
  sessionsState: import("..").SessionsState;
89
+ hostedLoginBox?: boolean | undefined;
88
90
  routes: import("..").AuthPageRoutes;
89
91
  header?: any;
90
92
  loaderComponent?: any;
@@ -39,6 +39,7 @@ declare const reducers: {
39
39
  tenantsState: TenantsState;
40
40
  rolesState: import("..").RolesState;
41
41
  sessionsState: import("..").SessionsState;
42
+ hostedLoginBox?: boolean | undefined;
42
43
  routes: import("..").AuthPageRoutes;
43
44
  header?: any;
44
45
  loaderComponent?: any;
@@ -73,6 +74,7 @@ declare const reducers: {
73
74
  tenantsState: TenantsState;
74
75
  rolesState: import("..").RolesState;
75
76
  sessionsState: import("..").SessionsState;
77
+ hostedLoginBox?: boolean | undefined;
76
78
  routes: import("..").AuthPageRoutes;
77
79
  header?: any;
78
80
  loaderComponent?: any;
package/auth/index.js CHANGED
@@ -1397,6 +1397,38 @@ function* getMfaRequiredState(user) {
1397
1397
  return Object.assign(Object.assign({ user: undefined, isAuthenticated: false }, setMfaState), { loginState: Object.assign(Object.assign({}, loginState), { mfaToken: user.mfaToken, mfaRequired: user.mfaRequired, loading: false, error: undefined, step, tenantsLoading: true, email: user.userEmail, tenants: [], allowRememberMfaDevice: isAllowedToRemember, mfaDeviceExpiration }) });
1398
1398
  }
1399
1399
  function* refreshToken() {
1400
+ const { hostedLoginBox } = yield select((state) => state.auth);
1401
+ if (hostedLoginBox) {
1402
+ yield call(refreshTokenHosted);
1403
+ }
1404
+ else {
1405
+ yield call(refreshTokenEmbedded);
1406
+ }
1407
+ }
1408
+ function* refreshTokenHosted() {
1409
+ const { user } = yield select((state) => state.auth);
1410
+ if (!(user === null || user === void 0 ? void 0 : user.refreshToken)) {
1411
+ ContextHolder.setAccessToken(null);
1412
+ ContextHolder.setUser(null);
1413
+ yield put(actions.setState({ isAuthenticated: false }));
1414
+ return;
1415
+ }
1416
+ try {
1417
+ const body = {
1418
+ grant_type: 'refresh_token',
1419
+ refresh_token: user === null || user === void 0 ? void 0 : user.refreshToken
1420
+ };
1421
+ const authenticatedUser = yield call(api.auth.exchangeOAuthTokens, body);
1422
+ yield put(actions.setState({ user: authenticatedUser, isAuthenticated: true }));
1423
+ yield put(actions.loadTenants());
1424
+ }
1425
+ catch (e) {
1426
+ ContextHolder.setAccessToken(null);
1427
+ ContextHolder.setUser(null);
1428
+ yield put(actions.setState({ isAuthenticated: false }));
1429
+ }
1430
+ }
1431
+ function* refreshTokenEmbedded() {
1400
1432
  var _a;
1401
1433
  try {
1402
1434
  const onRedirectTo = ContextHolder.onRedirectTo;
@@ -1413,7 +1445,7 @@ function* refreshToken() {
1413
1445
  localStorage.setItem('name', user.name);
1414
1446
  }
1415
1447
  const quickLoginToRegister = (_a = localStorage.getItem('register-quick-login')) !== null && _a !== void 0 ? _a : loginState.quickLoginToRegister;
1416
- const shouldNavigateToRegisterQuicKLogin = quickLoginToRegister && localStorage.getItem(`${user.email}-${quickLoginToRegister}`) !== 'true';
1448
+ const shouldNavigateToRegisterQuicKLogin = quickLoginToRegister && localStorage.getItem(`${user.email}-${quickLoginToRegister}`) !== 'true' && !window.location.pathname.endsWith(routes.logoutUrl);
1417
1449
  yield put(actions.setTenantsState({ tenants, loading: false }));
1418
1450
  yield put(actions.setState({
1419
1451
  user,
@@ -1574,6 +1606,7 @@ function* quickSmsPasswordlessPreLogin(_a) {
1574
1606
  loading: false,
1575
1607
  email: payload.email,
1576
1608
  phoneNumber: preloginRes === null || preloginRes === void 0 ? void 0 : preloginRes.phoneNumber,
1609
+ error: undefined,
1577
1610
  }));
1578
1611
  callback === null || callback === void 0 ? void 0 : callback(true);
1579
1612
  }
@@ -1602,6 +1635,7 @@ function* passwordlessPreLogin(_a) {
1602
1635
  loading: false,
1603
1636
  email: payload.email,
1604
1637
  phoneNumber: preloginRes === null || preloginRes === void 0 ? void 0 : preloginRes.phoneNumber,
1638
+ error: undefined
1605
1639
  }));
1606
1640
  callback === null || callback === void 0 ? void 0 : callback();
1607
1641
  }
@@ -1641,6 +1675,7 @@ function* passwordlessPostLogin(_a) {
1641
1675
  localStorage.setItem('name', user.name);
1642
1676
  }
1643
1677
  yield put(actions.setState({ user, isAuthenticated: true }));
1678
+ yield put(actions.setLoginState({ error: undefined }));
1644
1679
  yield put(actions.loadTenants());
1645
1680
  if (loginState.flow === LoginFlow.Login) {
1646
1681
  yield afterAuthNavigation();
@@ -1648,8 +1683,9 @@ function* passwordlessPostLogin(_a) {
1648
1683
  else {
1649
1684
  onRedirectTo(routes.loginUrl, { preserveQueryParams: true });
1650
1685
  }
1686
+ localStorage.removeItem('register-quick-login');
1687
+ callback === null || callback === void 0 ? void 0 : callback(true);
1651
1688
  }
1652
- callback === null || callback === void 0 ? void 0 : callback(true);
1653
1689
  }
1654
1690
  catch (e) {
1655
1691
  yield put(actions.setLoginState({ error: (_c = e.message) !== null && _c !== void 0 ? _c : 'Failed to authenticate' }));
@@ -1760,6 +1796,7 @@ function* webAuthnPrelogin(_a) {
1760
1796
  const { options } = yield call(api.auth.webAuthnPreLogin, body);
1761
1797
  options.challenge = base64urlDecode(options.challenge);
1762
1798
  options.allowCredentials = (_b = options.allowCredentials) === null || _b === void 0 ? void 0 : _b.map((credentials) => (Object.assign(Object.assign({}, credentials), { id: base64urlDecode(credentials.id) })));
1799
+ yield put(actions.setLoginState({ error: undefined }));
1763
1800
  callback === null || callback === void 0 ? void 0 : callback(options);
1764
1801
  }
1765
1802
  catch (e) {
@@ -1792,9 +1829,10 @@ function* webAuthnPostLogin(_a) {
1792
1829
  }
1793
1830
  yield put(actions.loadTenants());
1794
1831
  yield put(actions.setState({ user, isAuthenticated: true }));
1832
+ yield put(actions.setLoginState({ error: undefined }));
1795
1833
  yield afterAuthNavigation();
1834
+ callback === null || callback === void 0 ? void 0 : callback(true);
1796
1835
  }
1797
- callback === null || callback === void 0 ? void 0 : callback(true);
1798
1836
  }
1799
1837
  catch (e) {
1800
1838
  yield put(actions.setLoginState({ error: e.message }));
@@ -1884,6 +1922,7 @@ function* login({ payload: { email, password, recaptchaToken, invitationToken, c
1884
1922
  if (isAuthenticated && loginState.flow === LoginFlow.Login) {
1885
1923
  yield afterAuthNavigation();
1886
1924
  }
1925
+ localStorage.removeItem('register-quick-login');
1887
1926
  callback === null || callback === void 0 ? void 0 : callback(true);
1888
1927
  }
1889
1928
  catch (e) {
@@ -1912,6 +1951,7 @@ function* loginWithMfa({ payload: { mfaToken, value, rememberDevice, callback },
1912
1951
  localStorage.setItem('name', user.name);
1913
1952
  }
1914
1953
  yield put(actions.loadTenants());
1954
+ yield put(actions.setLoginState({ error: undefined, loading: false }));
1915
1955
  if (loginState.flow === LoginFlow.Login) {
1916
1956
  yield afterAuthNavigation();
1917
1957
  }
@@ -3633,6 +3673,7 @@ function* loginViaSocialLogin(_a) {
3633
3673
  }
3634
3674
  yield put(actions.setLoginState({ email, isNewUser }));
3635
3675
  yield refreshToken();
3676
+ localStorage.removeItem('register-quick-login');
3636
3677
  yield put(actions.setSocialLoginsState({ loading: false }));
3637
3678
  }
3638
3679
  catch (e) {
@@ -55,6 +55,7 @@ export interface AuthState extends Routes, PluginOptions {
55
55
  tenantsState: TenantsState;
56
56
  rolesState: RolesState;
57
57
  sessionsState: SessionsState;
58
+ hostedLoginBox?: boolean;
58
59
  }
59
60
  export declare type AuthPageRoutes = {
60
61
  /**
package/auth/utils.d.ts CHANGED
@@ -26,6 +26,7 @@ export declare const resetStateByKey: <T>(key: keyof AuthState, initialState: Pa
26
26
  tenantsState: import(".").TenantsState;
27
27
  rolesState: import(".").RolesState;
28
28
  sessionsState: import(".").SessionsState;
29
+ hostedLoginBox?: boolean | undefined;
29
30
  routes: import("./interfaces").AuthPageRoutes;
30
31
  header?: any;
31
32
  loaderComponent?: any;
@@ -59,6 +60,7 @@ export declare const typeReducer: <T>(key: keyof AuthState) => (state: AuthState
59
60
  tenantsState: import(".").TenantsState;
60
61
  rolesState: import(".").RolesState;
61
62
  sessionsState: import(".").SessionsState;
63
+ hostedLoginBox?: boolean | undefined;
62
64
  routes: import("./interfaces").AuthPageRoutes;
63
65
  header?: any;
64
66
  loaderComponent?: any;
@@ -96,6 +98,7 @@ export declare const typeReducerForKey: <T>(key: keyof AuthState) => {
96
98
  tenantsState: import(".").TenantsState;
97
99
  rolesState: import(".").RolesState;
98
100
  sessionsState: import(".").SessionsState;
101
+ hostedLoginBox?: boolean | undefined;
99
102
  routes: import("./interfaces").AuthPageRoutes;
100
103
  header?: any;
101
104
  loaderComponent?: any;
@@ -134,6 +137,7 @@ export declare const typeReducerNestedKey: <T, K>(key: keyof AuthState, nestedKe
134
137
  tenantsState: import(".").TenantsState;
135
138
  rolesState: import(".").RolesState;
136
139
  sessionsState: import(".").SessionsState;
140
+ hostedLoginBox?: boolean | undefined;
137
141
  routes: import("./interfaces").AuthPageRoutes;
138
142
  header?: any;
139
143
  loaderComponent?: any;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var auth_index = require('../index-7cc852ed.js');
5
+ var auth_index = require('../index-ceef14eb.js');
6
6
  var constants = require('../constants-52e37c08.js');
7
7
  var restApi = require('@frontegg/rest-api');
8
8
  require('@reduxjs/toolkit');
@@ -1316,6 +1316,38 @@ function* getMfaRequiredState(user) {
1316
1316
  return Object.assign(Object.assign({ user: undefined, isAuthenticated: false }, setMfaState), { loginState: Object.assign(Object.assign({}, loginState), { mfaToken: user.mfaToken, mfaRequired: user.mfaRequired, loading: false, error: undefined, step, tenantsLoading: true, email: user.userEmail, tenants: [], allowRememberMfaDevice: isAllowedToRemember, mfaDeviceExpiration }) });
1317
1317
  }
1318
1318
  function* refreshToken() {
1319
+ const { hostedLoginBox } = yield effects.select((state) => state.auth);
1320
+ if (hostedLoginBox) {
1321
+ yield effects.call(refreshTokenHosted);
1322
+ }
1323
+ else {
1324
+ yield effects.call(refreshTokenEmbedded);
1325
+ }
1326
+ }
1327
+ function* refreshTokenHosted() {
1328
+ const { user } = yield effects.select((state) => state.auth);
1329
+ if (!(user === null || user === void 0 ? void 0 : user.refreshToken)) {
1330
+ restApi.ContextHolder.setAccessToken(null);
1331
+ restApi.ContextHolder.setUser(null);
1332
+ yield effects.put(actions.setState({ isAuthenticated: false }));
1333
+ return;
1334
+ }
1335
+ try {
1336
+ const body = {
1337
+ grant_type: 'refresh_token',
1338
+ refresh_token: user === null || user === void 0 ? void 0 : user.refreshToken
1339
+ };
1340
+ const authenticatedUser = yield effects.call(restApi.api.auth.exchangeOAuthTokens, body);
1341
+ yield effects.put(actions.setState({ user: authenticatedUser, isAuthenticated: true }));
1342
+ yield effects.put(actions.loadTenants());
1343
+ }
1344
+ catch (e) {
1345
+ restApi.ContextHolder.setAccessToken(null);
1346
+ restApi.ContextHolder.setUser(null);
1347
+ yield effects.put(actions.setState({ isAuthenticated: false }));
1348
+ }
1349
+ }
1350
+ function* refreshTokenEmbedded() {
1319
1351
  var _a;
1320
1352
  try {
1321
1353
  const onRedirectTo = restApi.ContextHolder.onRedirectTo;
@@ -1332,7 +1364,7 @@ function* refreshToken() {
1332
1364
  localStorage.setItem('name', user.name);
1333
1365
  }
1334
1366
  const quickLoginToRegister = (_a = localStorage.getItem('register-quick-login')) !== null && _a !== void 0 ? _a : loginState.quickLoginToRegister;
1335
- const shouldNavigateToRegisterQuicKLogin = quickLoginToRegister && localStorage.getItem(`${user.email}-${quickLoginToRegister}`) !== 'true';
1367
+ const shouldNavigateToRegisterQuicKLogin = quickLoginToRegister && localStorage.getItem(`${user.email}-${quickLoginToRegister}`) !== 'true' && !window.location.pathname.endsWith(routes.logoutUrl);
1336
1368
  yield effects.put(actions.setTenantsState({ tenants, loading: false }));
1337
1369
  yield effects.put(actions.setState({
1338
1370
  user,
@@ -1493,6 +1525,7 @@ function* quickSmsPasswordlessPreLogin(_a) {
1493
1525
  loading: false,
1494
1526
  email: payload.email,
1495
1527
  phoneNumber: preloginRes === null || preloginRes === void 0 ? void 0 : preloginRes.phoneNumber,
1528
+ error: undefined,
1496
1529
  }));
1497
1530
  callback === null || callback === void 0 ? void 0 : callback(true);
1498
1531
  }
@@ -1521,6 +1554,7 @@ function* passwordlessPreLogin(_a) {
1521
1554
  loading: false,
1522
1555
  email: payload.email,
1523
1556
  phoneNumber: preloginRes === null || preloginRes === void 0 ? void 0 : preloginRes.phoneNumber,
1557
+ error: undefined
1524
1558
  }));
1525
1559
  callback === null || callback === void 0 ? void 0 : callback();
1526
1560
  }
@@ -1560,6 +1594,7 @@ function* passwordlessPostLogin(_a) {
1560
1594
  localStorage.setItem('name', user.name);
1561
1595
  }
1562
1596
  yield effects.put(actions.setState({ user, isAuthenticated: true }));
1597
+ yield effects.put(actions.setLoginState({ error: undefined }));
1563
1598
  yield effects.put(actions.loadTenants());
1564
1599
  if (loginState.flow === exports.LoginFlow.Login) {
1565
1600
  yield afterAuthNavigation();
@@ -1567,8 +1602,9 @@ function* passwordlessPostLogin(_a) {
1567
1602
  else {
1568
1603
  onRedirectTo(routes.loginUrl, { preserveQueryParams: true });
1569
1604
  }
1605
+ localStorage.removeItem('register-quick-login');
1606
+ callback === null || callback === void 0 ? void 0 : callback(true);
1570
1607
  }
1571
- callback === null || callback === void 0 ? void 0 : callback(true);
1572
1608
  }
1573
1609
  catch (e) {
1574
1610
  yield effects.put(actions.setLoginState({ error: (_c = e.message) !== null && _c !== void 0 ? _c : 'Failed to authenticate' }));
@@ -1679,6 +1715,7 @@ function* webAuthnPrelogin(_a) {
1679
1715
  const { options } = yield effects.call(restApi.api.auth.webAuthnPreLogin, body);
1680
1716
  options.challenge = vendor_index.base64urlDecode(options.challenge);
1681
1717
  options.allowCredentials = (_b = options.allowCredentials) === null || _b === void 0 ? void 0 : _b.map((credentials) => (Object.assign(Object.assign({}, credentials), { id: vendor_index.base64urlDecode(credentials.id) })));
1718
+ yield effects.put(actions.setLoginState({ error: undefined }));
1682
1719
  callback === null || callback === void 0 ? void 0 : callback(options);
1683
1720
  }
1684
1721
  catch (e) {
@@ -1711,9 +1748,10 @@ function* webAuthnPostLogin(_a) {
1711
1748
  }
1712
1749
  yield effects.put(actions.loadTenants());
1713
1750
  yield effects.put(actions.setState({ user, isAuthenticated: true }));
1751
+ yield effects.put(actions.setLoginState({ error: undefined }));
1714
1752
  yield afterAuthNavigation();
1753
+ callback === null || callback === void 0 ? void 0 : callback(true);
1715
1754
  }
1716
- callback === null || callback === void 0 ? void 0 : callback(true);
1717
1755
  }
1718
1756
  catch (e) {
1719
1757
  yield effects.put(actions.setLoginState({ error: e.message }));
@@ -1803,6 +1841,7 @@ function* login({ payload: { email, password, recaptchaToken, invitationToken, c
1803
1841
  if (isAuthenticated && loginState.flow === exports.LoginFlow.Login) {
1804
1842
  yield afterAuthNavigation();
1805
1843
  }
1844
+ localStorage.removeItem('register-quick-login');
1806
1845
  callback === null || callback === void 0 ? void 0 : callback(true);
1807
1846
  }
1808
1847
  catch (e) {
@@ -1831,6 +1870,7 @@ function* loginWithMfa({ payload: { mfaToken, value, rememberDevice, callback },
1831
1870
  localStorage.setItem('name', user.name);
1832
1871
  }
1833
1872
  yield effects.put(actions.loadTenants());
1873
+ yield effects.put(actions.setLoginState({ error: undefined, loading: false }));
1834
1874
  if (loginState.flow === exports.LoginFlow.Login) {
1835
1875
  yield afterAuthNavigation();
1836
1876
  }
@@ -3552,6 +3592,7 @@ function* loginViaSocialLogin(_a) {
3552
3592
  }
3553
3593
  yield effects.put(actions.setLoginState({ email, isNewUser }));
3554
3594
  yield refreshToken();
3595
+ localStorage.removeItem('register-quick-login');
3555
3596
  yield effects.put(actions.setSocialLoginsState({ loading: false }));
3556
3597
  }
3557
3598
  catch (e) {
package/node/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var auth_index = require('./index-7cc852ed.js');
5
+ var auth_index = require('./index-ceef14eb.js');
6
6
  var audits_index = require('./audits/index.js');
7
7
  var connectivity_index = require('./connectivity/index.js');
8
8
  var subscriptions_index = require('./subscriptions/index.js');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var auth_index = require('../index-7cc852ed.js');
5
+ var auth_index = require('../index-ceef14eb.js');
6
6
  var toolkit = require('@reduxjs/toolkit');
7
7
  var createSagaMiddleware = require('redux-saga');
8
8
  var effects = require('redux-saga/effects');
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@frontegg/redux-store",
3
3
  "libName": "FronteggReduxStore",
4
- "version": "5.66.2",
4
+ "version": "5.68.0",
5
5
  "author": "Frontegg LTD",
6
6
  "main": "./node/index.js",
7
7
  "module": "./index.js",
@@ -12,7 +12,7 @@ export { bindActionCreators, CaseReducerActions, SliceCaseReducers } from '@redu
12
12
  export interface RootState {
13
13
  context?: ContextOptions;
14
14
  }
15
- export declare const createFronteggStore: (rootInitialState: InitialState, storeHolder?: any, previewMode?: boolean, authInitialState?: (Partial<Pick<AuthState, "error" | "onRedirectTo" | "isAuthenticated" | "isLoading" | "keepSessionAlive" | "user" | "isSSOAuth" | "ssoACS" | "loginState" | "activateState" | "acceptInvitationState" | "forgotPasswordState" | "resetPhoneNumberState" | "ssoState" | "profileState" | "mfaState" | "teamState" | "socialLoginState" | "signUpState" | "apiTokensState" | "securityPolicyState" | "accountSettingsState" | "tenantsState" | "rolesState" | "sessionsState" | "header" | "loaderComponent">> & {
15
+ export declare const createFronteggStore: (rootInitialState: InitialState, storeHolder?: any, previewMode?: boolean, authInitialState?: (Partial<Pick<AuthState, "error" | "onRedirectTo" | "isAuthenticated" | "isLoading" | "keepSessionAlive" | "user" | "isSSOAuth" | "ssoACS" | "loginState" | "activateState" | "acceptInvitationState" | "forgotPasswordState" | "resetPhoneNumberState" | "ssoState" | "profileState" | "mfaState" | "teamState" | "socialLoginState" | "signUpState" | "apiTokensState" | "securityPolicyState" | "accountSettingsState" | "tenantsState" | "rolesState" | "sessionsState" | "hostedLoginBox" | "header" | "loaderComponent">> & {
16
16
  routes?: Partial<AuthPageRoutes> | undefined;
17
17
  }) | undefined, overrideInitialState?: Partial<{
18
18
  auth: Partial<Omit<AuthState, 'routes'>> & {