From 5892bca40b8ac503bdd85b54ad7b0daa7d77a692 Mon Sep 17 00:00:00 2001 From: Dawid Tarasiuk Date: Tue, 1 Feb 2022 11:23:48 +0100 Subject: [PATCH] Fix double authentication (#1772) --- src/auth/hooks/useAuthProvider.ts | 12 +++++++++++- src/auth/views/Login.tsx | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/auth/hooks/useAuthProvider.ts b/src/auth/hooks/useAuthProvider.ts index ec76aab41..f08d4c2f1 100644 --- a/src/auth/hooks/useAuthProvider.ts +++ b/src/auth/hooks/useAuthProvider.ts @@ -1,5 +1,6 @@ import { IMessageContext } from "@saleor/components/messages"; import { APP_DEFAULT_URI, APP_MOUNT_URI, DEMO_MODE } from "@saleor/config"; +import useLocalStorage from "@saleor/hooks/useLocalStorage"; import useNavigator from "@saleor/hooks/useNavigator"; import { commonMessages } from "@saleor/intl"; import { @@ -49,6 +50,10 @@ export function useAuthProvider({ } = useAuth(); const navigate = useNavigator(); const { authenticated, authenticating, user } = useAuthState(); + const [requestedExternalPluginId] = useLocalStorage( + "requestedExternalPluginId", + null + ); const [error, setError] = useState(); const permitCredentialsAPI = useRef(true); @@ -65,7 +70,12 @@ export function useAuthProvider({ }, [authenticated]); useEffect(() => { - if (!authenticated && !authenticating && permitCredentialsAPI.current) { + if ( + !authenticated && + !authenticating && + !requestedExternalPluginId && + permitCredentialsAPI.current + ) { permitCredentialsAPI.current = false; loginWithCredentialsManagementAPI(handleLogin); } diff --git a/src/auth/views/Login.tsx b/src/auth/views/Login.tsx index 529d64dcd..d4b067f9c 100644 --- a/src/auth/views/Login.tsx +++ b/src/auth/views/Login.tsx @@ -76,6 +76,7 @@ const LoginView: React.FC = ({ params }) => { code, state }); + setRequestedExternalPluginId(null); if (result && !result?.errors?.length) { navigate(fallbackUri ?? "/"); setFallbackUri(null);