diff --git a/packages/ra-core/src/auth/useCheckAuth.ts b/packages/ra-core/src/auth/useCheckAuth.ts index 7a14c3edf12..11ec9e03fbe 100644 --- a/packages/ra-core/src/auth/useCheckAuth.ts +++ b/packages/ra-core/src/auth/useCheckAuth.ts @@ -62,7 +62,7 @@ export const useCheckAuth = (): CheckAuth => { if (logoutOnFailure) { logout( {}, - error && error.redirectTo + error && error.redirectTo != null ? error.redirectTo : redirectTo ); diff --git a/packages/ra-core/src/auth/useLogout.ts b/packages/ra-core/src/auth/useLogout.ts index 19b5e035452..4c48683e630 100644 --- a/packages/ra-core/src/auth/useLogout.ts +++ b/packages/ra-core/src/auth/useLogout.ts @@ -57,14 +57,14 @@ const useLogout = (): Logout => { navigateRef.current = navigate; }, [location, navigate]); - const logout = useCallback( + const logout: Logout = useCallback( ( params = {}, redirectTo = loginUrl, redirectToCurrentLocationAfterLogin = true ) => authProvider.logout(params).then(redirectToFromProvider => { - if (redirectToFromProvider === false) { + if (redirectToFromProvider === false || redirectTo === false) { resetStore(); queryClient.clear(); // do not redirect @@ -138,7 +138,7 @@ const useLogout = (): Logout => { */ type Logout = ( params?: any, - redirectTo?: string, + redirectTo?: string | false, redirectToCurrentLocationAfterLogin?: boolean ) => Promise; diff --git a/packages/ra-core/src/auth/useLogoutIfAccessDenied.ts b/packages/ra-core/src/auth/useLogoutIfAccessDenied.ts index 7b44835323c..0e1d99a5a34 100644 --- a/packages/ra-core/src/auth/useLogoutIfAccessDenied.ts +++ b/packages/ra-core/src/auth/useLogoutIfAccessDenied.ts @@ -91,7 +91,7 @@ const useLogoutIfAccessDenied = (): LogoutIfAccessDenied => { .catch(() => {}); } const redirectTo = - e && e.redirectTo + e && e.redirectTo != null ? e.redirectTo : error && error.redirectTo ? error.redirectTo