@frontegg/redux-store 4.42.2 → 4.43.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.
- package/auth/LoginState/saga.d.ts +14 -4
- package/auth/index.js +3 -12
- package/node/auth/index.js +3 -12
- package/package.json +1 -1
|
@@ -19,7 +19,7 @@ export declare function loadSSOPublicConfigurationFunction(): Generator<import("
|
|
|
19
19
|
isActive: any;
|
|
20
20
|
}>;
|
|
21
21
|
export declare const isMfaRequired: (user: ILoginResponse) => boolean;
|
|
22
|
-
export declare function getMfaRequiredState(user: any): Generator<CallEffect<IAllowedToRememberMfaDevice>, {
|
|
22
|
+
export declare function getMfaRequiredState(user: any): Generator<import("redux-saga/effects").SelectEffect | CallEffect<IAllowedToRememberMfaDevice>, {
|
|
23
23
|
loginState: {
|
|
24
24
|
mfaToken: any;
|
|
25
25
|
mfaRequired: any;
|
|
@@ -30,10 +30,15 @@ export declare function getMfaRequiredState(user: any): Generator<CallEffect<IAl
|
|
|
30
30
|
tenants: never[];
|
|
31
31
|
allowRememberMfaDevice: any;
|
|
32
32
|
mfaDeviceExpiration: any;
|
|
33
|
+
ssoRedirectUrl?: string | undefined;
|
|
34
|
+
email?: string | undefined;
|
|
35
|
+
inviteTokenTenantName?: string | undefined;
|
|
36
|
+
inviteTokenError?: string | undefined;
|
|
37
|
+
isNewUser?: boolean | undefined;
|
|
33
38
|
};
|
|
34
39
|
user: undefined;
|
|
35
40
|
isAuthenticated: boolean;
|
|
36
|
-
}, {
|
|
41
|
+
}, AuthState & {
|
|
37
42
|
isAllowedToRemember: any;
|
|
38
43
|
mfaDeviceExpiration: any;
|
|
39
44
|
}>;
|
|
@@ -43,7 +48,7 @@ export declare function refreshToken(): Generator<import("redux-saga/effects").S
|
|
|
43
48
|
}> | import("redux-saga/effects").PutEffect<{
|
|
44
49
|
payload: Partial<AuthState>;
|
|
45
50
|
type: string;
|
|
46
|
-
}> | Generator<CallEffect<IAllowedToRememberMfaDevice>, {
|
|
51
|
+
}> | Generator<import("redux-saga/effects").SelectEffect | CallEffect<IAllowedToRememberMfaDevice>, {
|
|
47
52
|
loginState: {
|
|
48
53
|
mfaToken: any;
|
|
49
54
|
mfaRequired: any;
|
|
@@ -54,10 +59,15 @@ export declare function refreshToken(): Generator<import("redux-saga/effects").S
|
|
|
54
59
|
tenants: never[];
|
|
55
60
|
allowRememberMfaDevice: any;
|
|
56
61
|
mfaDeviceExpiration: any;
|
|
62
|
+
ssoRedirectUrl?: string | undefined;
|
|
63
|
+
email?: string | undefined;
|
|
64
|
+
inviteTokenTenantName?: string | undefined;
|
|
65
|
+
inviteTokenError?: string | undefined;
|
|
66
|
+
isNewUser?: boolean | undefined;
|
|
57
67
|
};
|
|
58
68
|
user: undefined;
|
|
59
69
|
isAuthenticated: boolean;
|
|
60
|
-
}, {
|
|
70
|
+
}, AuthState & {
|
|
61
71
|
isAllowedToRemember: any;
|
|
62
72
|
mfaDeviceExpiration: any;
|
|
63
73
|
}> | CallEffect<ILoginResponse> | import("redux-saga/effects").PutEffect<{
|
package/auth/index.js
CHANGED
|
@@ -1049,6 +1049,7 @@ const isMfaRequired = (user) => {
|
|
|
1049
1049
|
function* getMfaRequiredState(user) {
|
|
1050
1050
|
let setMfaState = {};
|
|
1051
1051
|
let step = LoginStep.loginWithTwoFactor;
|
|
1052
|
+
const { loginState } = yield select((state) => state.auth);
|
|
1052
1053
|
const { isAllowedToRemember, mfaDeviceExpiration } = yield call(api.auth.checkIfAllowToRememberMfaDevice, user.mfaToken);
|
|
1053
1054
|
if (user.hasOwnProperty('mfaEnrolled') && !user.mfaEnrolled) {
|
|
1054
1055
|
setMfaState = {
|
|
@@ -1062,17 +1063,7 @@ function* getMfaRequiredState(user) {
|
|
|
1062
1063
|
};
|
|
1063
1064
|
step = LoginStep.forceTwoFactor;
|
|
1064
1065
|
}
|
|
1065
|
-
return Object.assign(Object.assign({ user: undefined, isAuthenticated: false }, setMfaState), { loginState: {
|
|
1066
|
-
mfaToken: user.mfaToken,
|
|
1067
|
-
mfaRequired: user.mfaRequired,
|
|
1068
|
-
loading: false,
|
|
1069
|
-
error: undefined,
|
|
1070
|
-
step,
|
|
1071
|
-
tenantsLoading: true,
|
|
1072
|
-
tenants: [],
|
|
1073
|
-
allowRememberMfaDevice: isAllowedToRemember,
|
|
1074
|
-
mfaDeviceExpiration,
|
|
1075
|
-
} });
|
|
1066
|
+
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, tenants: [], allowRememberMfaDevice: isAllowedToRemember, mfaDeviceExpiration }) });
|
|
1076
1067
|
}
|
|
1077
1068
|
function* refreshToken() {
|
|
1078
1069
|
try {
|
|
@@ -1087,7 +1078,7 @@ function* refreshToken() {
|
|
|
1087
1078
|
else {
|
|
1088
1079
|
yield put(actions.loadTenants());
|
|
1089
1080
|
yield put(actions.setState({ user, isAuthenticated: true }));
|
|
1090
|
-
if ([routes.loginUrl, routes.socialLoginCallbackUrl, routes.signUpUrl, routes.oidcRedirectUrl].
|
|
1081
|
+
if ([routes.loginUrl, routes.socialLoginCallbackUrl, routes.signUpUrl, routes.oidcRedirectUrl].some(url => url && window.location.pathname.endsWith(url)) ||
|
|
1091
1082
|
(window.location.pathname.endsWith(routes.activateUrl) && user.verified)) {
|
|
1092
1083
|
if (loginState.isNewUser && routes.signUpSuccessUrl && routes.socialLoginCallbackUrl === window.location.pathname) {
|
|
1093
1084
|
onRedirectTo(routes.signUpSuccessUrl, { refresh: routes.signUpSuccessUrl.startsWith('http') });
|
package/node/auth/index.js
CHANGED
|
@@ -1051,6 +1051,7 @@ const isMfaRequired = (user) => {
|
|
|
1051
1051
|
function* getMfaRequiredState(user) {
|
|
1052
1052
|
let setMfaState = {};
|
|
1053
1053
|
let step = exports.LoginStep.loginWithTwoFactor;
|
|
1054
|
+
const { loginState } = yield effects.select((state) => state.auth);
|
|
1054
1055
|
const { isAllowedToRemember, mfaDeviceExpiration } = yield effects.call(restApi.api.auth.checkIfAllowToRememberMfaDevice, user.mfaToken);
|
|
1055
1056
|
if (user.hasOwnProperty('mfaEnrolled') && !user.mfaEnrolled) {
|
|
1056
1057
|
setMfaState = {
|
|
@@ -1064,17 +1065,7 @@ function* getMfaRequiredState(user) {
|
|
|
1064
1065
|
};
|
|
1065
1066
|
step = exports.LoginStep.forceTwoFactor;
|
|
1066
1067
|
}
|
|
1067
|
-
return Object.assign(Object.assign({ user: undefined, isAuthenticated: false }, setMfaState), { loginState: {
|
|
1068
|
-
mfaToken: user.mfaToken,
|
|
1069
|
-
mfaRequired: user.mfaRequired,
|
|
1070
|
-
loading: false,
|
|
1071
|
-
error: undefined,
|
|
1072
|
-
step,
|
|
1073
|
-
tenantsLoading: true,
|
|
1074
|
-
tenants: [],
|
|
1075
|
-
allowRememberMfaDevice: isAllowedToRemember,
|
|
1076
|
-
mfaDeviceExpiration,
|
|
1077
|
-
} });
|
|
1068
|
+
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, tenants: [], allowRememberMfaDevice: isAllowedToRemember, mfaDeviceExpiration }) });
|
|
1078
1069
|
}
|
|
1079
1070
|
function* refreshToken() {
|
|
1080
1071
|
try {
|
|
@@ -1089,7 +1080,7 @@ function* refreshToken() {
|
|
|
1089
1080
|
else {
|
|
1090
1081
|
yield effects.put(actions.loadTenants());
|
|
1091
1082
|
yield effects.put(actions.setState({ user, isAuthenticated: true }));
|
|
1092
|
-
if ([routes.loginUrl, routes.socialLoginCallbackUrl, routes.signUpUrl, routes.oidcRedirectUrl].
|
|
1083
|
+
if ([routes.loginUrl, routes.socialLoginCallbackUrl, routes.signUpUrl, routes.oidcRedirectUrl].some(url => url && window.location.pathname.endsWith(url)) ||
|
|
1093
1084
|
(window.location.pathname.endsWith(routes.activateUrl) && user.verified)) {
|
|
1094
1085
|
if (loginState.isNewUser && routes.signUpSuccessUrl && routes.socialLoginCallbackUrl === window.location.pathname) {
|
|
1095
1086
|
onRedirectTo(routes.signUpSuccessUrl, { refresh: routes.signUpSuccessUrl.startsWith('http') });
|