fix: interceptar magic link na home e redirecionar para AuthCallback

This commit is contained in:
guisilvagomes 2025-10-29 10:39:18 -03:00
parent f22bca225c
commit fb1e104b7b
4 changed files with 13 additions and 12 deletions

View File

@ -21,6 +21,16 @@ const Home: React.FC = () => {
const [searchParams] = useSearchParams(); const [searchParams] = useSearchParams();
const { user } = useAuth(); const { user } = useAuth();
// Verificar se há parâmetros de magic link e redirecionar para AuthCallback
useEffect(() => {
const hash = window.location.hash;
if (hash && (hash.includes('access_token') || hash.includes('type=magiclink'))) {
console.log("[Home] Detectado magic link, redirecionando para /auth/callback");
navigate(`/auth/callback${hash}`, { replace: true });
return;
}
}, [navigate]);
// Limpar cache se houver parâmetro ?clear=true // Limpar cache se houver parâmetro ?clear=true
useEffect(() => { useEffect(() => {
if (searchParams.get("clear") === "true") { if (searchParams.get("clear") === "true") {

View File

@ -205,10 +205,7 @@ const LoginMedico: React.FC = () => {
// Salvar contexto para redirecionamento correto após magic link // Salvar contexto para redirecionamento correto após magic link
localStorage.setItem("magic_link_redirect", "/painel-medico"); localStorage.setItem("magic_link_redirect", "/painel-medico");
await authService.sendMagicLink( await authService.sendMagicLink(formData.email);
formData.email,
`${window.location.origin}/auth/callback`
);
toast.success( toast.success(
"Link de acesso enviado para seu email! Verifique sua caixa de entrada.", "Link de acesso enviado para seu email! Verifique sua caixa de entrada.",
{ duration: 6000 } { duration: 6000 }

View File

@ -315,10 +315,7 @@ const LoginPaciente: React.FC = () => {
// Salvar contexto para redirecionamento correto após magic link // Salvar contexto para redirecionamento correto após magic link
localStorage.setItem("magic_link_redirect", "/acompanhamento"); localStorage.setItem("magic_link_redirect", "/acompanhamento");
await authService.sendMagicLink( await authService.sendMagicLink(formData.email);
formData.email,
`${window.location.origin}/auth/callback`
);
toast.success( toast.success(
"Link de acesso enviado para seu email! Verifique sua caixa de entrada.", "Link de acesso enviado para seu email! Verifique sua caixa de entrada.",
{ duration: 6000 } { duration: 6000 }

View File

@ -215,10 +215,7 @@ const LoginSecretaria: React.FC = () => {
// Salvar contexto para redirecionamento correto após magic link // Salvar contexto para redirecionamento correto após magic link
localStorage.setItem("magic_link_redirect", "/painel-secretaria"); localStorage.setItem("magic_link_redirect", "/painel-secretaria");
await authService.sendMagicLink( await authService.sendMagicLink(formData.email);
formData.email,
`${window.location.origin}/auth/callback`
);
toast.success( toast.success(
"Link de acesso enviado para seu email! Verifique sua caixa de entrada.", "Link de acesso enviado para seu email! Verifique sua caixa de entrada.",
{ duration: 6000 } { duration: 6000 }