diff --git a/MEDICONNECT 2/src/pages/AuthCallback.tsx b/MEDICONNECT 2/src/pages/AuthCallback.tsx index a7673e31b..062181e1d 100644 --- a/MEDICONNECT 2/src/pages/AuthCallback.tsx +++ b/MEDICONNECT 2/src/pages/AuthCallback.tsx @@ -92,43 +92,47 @@ export default function AuthCallback() { setMessage("Autenticado com sucesso! Redirecionando..."); toast.success("Login realizado com sucesso!"); - // Redirecionar baseado no contexto salvo ou role do usuário - setTimeout(() => { - // Verificar se há redirecionamento salvo do magic link - const savedRedirect = localStorage.getItem("magic_link_redirect"); + // Verificar se há redirecionamento salvo do magic link + const savedRedirect = localStorage.getItem("magic_link_redirect"); + + console.log("[AuthCallback] Verificando redirecionamento:"); + console.log(" - magic_link_redirect:", savedRedirect); + console.log(" - user role:", session.user.user_metadata?.role); + console.log(" - localStorage keys:", Object.keys(localStorage)); + + if (savedRedirect) { + console.log("[AuthCallback] ✅ Redirecionando para (saved):", savedRedirect); + localStorage.removeItem("magic_link_redirect"); // Limpar após uso - console.log("[AuthCallback] Verificando redirecionamento:"); - console.log(" - magic_link_redirect:", savedRedirect); - console.log(" - user role:", session.user.user_metadata?.role); - console.log(" - localStorage keys:", Object.keys(localStorage)); - - if (savedRedirect) { - console.log("[AuthCallback] ✅ Redirecionando para (saved):", savedRedirect); - localStorage.removeItem("magic_link_redirect"); // Limpar após uso - navigate(savedRedirect, { replace: true }); - return; - } + // Usar window.location.href para forçar reload completo e atualizar AuthContext + window.location.href = savedRedirect; + return; + } - // Fallback: redirecionar baseado no role - const userRole = session.user.user_metadata?.role || "paciente"; - console.log("[AuthCallback] ⚠️ Nenhum redirect salvo, usando role:", userRole); + // Fallback: redirecionar baseado no role + const userRole = session.user.user_metadata?.role || "paciente"; + console.log("[AuthCallback] ⚠️ Nenhum redirect salvo, usando role:", userRole); - switch (userRole) { - case "medico": - console.log("[AuthCallback] Navegando para /painel-medico"); - navigate("/painel-medico", { replace: true }); - break; - case "secretaria": - console.log("[AuthCallback] Navegando para /painel-secretaria"); - navigate("/painel-secretaria", { replace: true }); - break; - case "paciente": - default: - console.log("[AuthCallback] Navegando para /acompanhamento"); - navigate("/acompanhamento", { replace: true }); - break; - } - }, 1500); + let redirectUrl = "/acompanhamento"; // default paciente + + switch (userRole) { + case "medico": + console.log("[AuthCallback] Navegando para /painel-medico"); + redirectUrl = "/painel-medico"; + break; + case "secretaria": + console.log("[AuthCallback] Navegando para /painel-secretaria"); + redirectUrl = "/painel-secretaria"; + break; + case "paciente": + default: + console.log("[AuthCallback] Navegando para /acompanhamento"); + redirectUrl = "/acompanhamento"; + break; + } + + // Usar window.location.href para forçar reload completo + window.location.href = redirectUrl; } catch (err: any) { console.error("[AuthCallback] Erro:", err); setStatus("error");