diff --git a/src/misc/oidc/OidcSignInCallback.tsx b/src/misc/oidc/OidcSignInCallback.tsx index 0f4a2c54..618596d2 100644 --- a/src/misc/oidc/OidcSignInCallback.tsx +++ b/src/misc/oidc/OidcSignInCallback.tsx @@ -3,15 +3,22 @@ import { getUserManager } from "@utils/OidcUtils"; const OidcSignInCallback = () => { useEffect(() => { + const key = "cb-in-progress"; + if (sessionStorage.getItem(key)) return; + sessionStorage.setItem(key, "in progress"); getUserManager() .signinRedirectCallback() .then(() => { + sessionStorage.removeItem(key); const searchParams = new URLSearchParams(location.search); if (!searchParams.has("forward_uri")) { throw Error("Missing parameter forward_uri"); } const forwardUri = window.atob(searchParams.get("forward_uri")); window.location.replace(forwardUri); + }) + .catch(() => { + sessionStorage.removeItem(key); }); }, []);