diff --git a/src/auth/RegisterPage.tsx b/src/auth/RegisterPage.tsx index fc3d5b00..a7231300 100644 --- a/src/auth/RegisterPage.tsx +++ b/src/auth/RegisterPage.tsx @@ -56,7 +56,7 @@ export const RegisterPage: FC = () => { const [error, setError] = useState(); const [password, setPassword] = useState(""); const [passwordConfirmation, setPasswordConfirmation] = useState(""); - const { recaptchaKey, register } = useInteractiveRegistration(); + const { recaptchaKey, register } = useInteractiveRegistration(client); const { execute, reset, recaptchaId } = useRecaptcha(recaptchaKey); const onSubmitRegisterForm = useCallback( diff --git a/src/auth/useInteractiveRegistration.ts b/src/auth/useInteractiveRegistration.ts index 57c62355..6b753363 100644 --- a/src/auth/useInteractiveRegistration.ts +++ b/src/auth/useInteractiveRegistration.ts @@ -27,7 +27,9 @@ import { Session } from "../ClientContext"; import { Config } from "../config/Config"; import { widget } from "../widget"; -export const useInteractiveRegistration = (): { +export const useInteractiveRegistration = ( + oldClient?: MatrixClient, +): { privacyPolicyUrl?: string; recaptchaKey?: string; register: ( @@ -105,7 +107,7 @@ export const useInteractiveRegistration = (): { /* eslint-disable camelcase,@typescript-eslint/no-explicit-any */ const { user_id, access_token, device_id } = (await interactiveAuth.attemptAuth()) as any; - + await oldClient?.logout(true); const client = await initClient( { baseUrl: Config.defaultHomeserverUrl()!, @@ -136,7 +138,7 @@ export const useInteractiveRegistration = (): { return [client, session]; }, - [], + [oldClient], ); return { privacyPolicyUrl, recaptchaKey, register };