From bc2e0595cf2bc955d40a3e4ff5623016a711bb2b Mon Sep 17 00:00:00 2001 From: Sacha Al Himdani Date: Thu, 21 Aug 2025 18:46:26 +0200 Subject: [PATCH] Extract token directly from url Signed-off-by: Sacha Al Himdani --- .../src/pages/auth/ConfirmInvitationPage.tsx | 41 ++++++++----------- .../src/pages/auth/ResetPasswordPage.tsx | 38 +++++++---------- 2 files changed, 31 insertions(+), 48 deletions(-) diff --git a/apps/console/src/pages/auth/ConfirmInvitationPage.tsx b/apps/console/src/pages/auth/ConfirmInvitationPage.tsx index 67ff0b9e0..e71ea451a 100644 --- a/apps/console/src/pages/auth/ConfirmInvitationPage.tsx +++ b/apps/console/src/pages/auth/ConfirmInvitationPage.tsx @@ -5,10 +5,8 @@ import { z } from "zod"; import { useFormWithSchema } from "/hooks/useFormWithSchema"; import { usePageTitle } from "@probo/hooks"; import { buildEndpoint } from "/providers/RelayProviders"; -import { useEffect } from "react"; const schema = z.object({ - token: z.string(), password: z.string().min(8), }); @@ -16,17 +14,28 @@ export default function ConfirmInvitationPage() { const { __ } = useTranslate(); const navigate = useNavigate(); const { toast } = useToast(); - const { register, handleSubmit, formState, setValue } = useFormWithSchema( + const { register, handleSubmit, formState } = useFormWithSchema( schema, { defaultValues: { - token: "", password: "", }, } ); const onSubmit = handleSubmit(async (data) => { + const searchParams = new URLSearchParams(location.search); + const token = searchParams.get("token"); + + if (!token) { + toast({ + title: __("Confirmation failed"), + description: __("Invalid or missing invitation token"), + variant: "error", + }); + return; + } + const response = await fetch( buildEndpoint("/api/console/v1/auth/invitation"), { @@ -35,7 +44,10 @@ export default function ConfirmInvitationPage() { "Content-Type": "application/json", }, credentials: "include", - body: JSON.stringify(data), + body: JSON.stringify({ + token: token, + password: data.password, + }), } ); @@ -60,15 +72,6 @@ export default function ConfirmInvitationPage() { usePageTitle(__("Confirm invitation")); - useEffect(() => { - const searchParams = new URLSearchParams(location.search); - const urlToken = searchParams.get("token"); - - if (urlToken) { - setValue("token", urlToken); - } - }, [location.search, setValue]); - return (
@@ -79,16 +82,6 @@ export default function ConfirmInvitationPage() {
-