From ede2094d3028c438afa1b9438d8549dbdf5aac2e Mon Sep 17 00:00:00 2001 From: Wojciech Mista Date: Mon, 24 Jan 2022 10:23:19 +0100 Subject: [PATCH] Redirect user back to the first landing page after external login (#1742) * Preserve fallbackuri on external login * Change default uri to "/" --- src/auth/views/Login.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/auth/views/Login.tsx b/src/auth/views/Login.tsx index 30fe46fd7..ffb93d05f 100644 --- a/src/auth/views/Login.tsx +++ b/src/auth/views/Login.tsx @@ -42,6 +42,11 @@ const LoginView: React.FC = ({ params }) => { setRequestedExternalPluginId ] = useLocalStorage("requestedExternalPluginId", null); + const [fallbackUri, setFallbackUri] = useLocalStorage( + "externalLoginFallbackUri", + null + ); + const handleSubmit = async (data: LoginFormData) => { const result = await login(data.email, data.password); const errors = result?.errors || []; @@ -50,6 +55,8 @@ const LoginView: React.FC = ({ params }) => { }; const handleRequestExternalAuthentication = async (pluginId: string) => { + setFallbackUri(location.pathname); + const result = await requestLoginByExternalPlugin(pluginId, { redirectUri: urlJoin( window.location.origin, @@ -70,7 +77,8 @@ const LoginView: React.FC = ({ params }) => { state }); if (result && !result?.errors?.length) { - navigate(APP_DEFAULT_URI); + navigate(fallbackUri ?? "/"); + setFallbackUri(null); } };