From 96729793a8ffa73f576c4341ef6fe9ff15d0a8ee Mon Sep 17 00:00:00 2001 From: Reifonas Date: Sun, 22 Feb 2026 14:54:17 -0300 Subject: [PATCH] fix(auth): change flowType to implicit and optimise auth callback --- src/lib/supabase.ts | 2 +- src/pages/AuthCallback.tsx | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lib/supabase.ts b/src/lib/supabase.ts index 489e98b..d950efc 100644 --- a/src/lib/supabase.ts +++ b/src/lib/supabase.ts @@ -16,7 +16,7 @@ export const supabase = createClient(supabaseUrl, supabaseAnonKey, { autoRefreshToken: true, persistSession: true, detectSessionInUrl: true, - flowType: 'pkce' + flowType: 'implicit' }, realtime: { params: { diff --git a/src/pages/AuthCallback.tsx b/src/pages/AuthCallback.tsx index 4036b59..878fcda 100644 --- a/src/pages/AuthCallback.tsx +++ b/src/pages/AuthCallback.tsx @@ -15,13 +15,6 @@ export const AuthCallback: React.FC = () => { useEffect(() => { console.log('🔄 AuthCallback montado.'); - // 1. Iniciar o timer de redirecionamento - const timer = setTimeout(() => { - console.log('⏰ Timeout disparado. Forçando ida para /'); - window.location.href = '/'; - }, 4000); - - // 2. Processar sessão e garantir permissões do Super Admin const processSession = async () => { try { console.log('🔍 Verificando sessão em background...'); @@ -45,15 +38,22 @@ export const AuthCallback: React.FC = () => { console.log('👑 Permissões de Super Admin aplicadas!'); } - // Redirecionar - window.location.href = '/'; + // Redirecionar imediatamente + window.location.replace('/'); + } else { + // Sem sessão (ainda processando ou erro), esperar um pouco e tentar dnv ou ir para login + setTimeout(() => window.location.replace('/login'), 5000); } } catch (e) { console.error('⚠️ Erro na verificação de sessão:', e); + window.location.replace('/login'); } }; - processSession(); + // Adiciona um pequeno delay para garantir que o supabase-js processou a URL (implicit / pkce hash) + const timer = setTimeout(() => { + processSession(); + }, 800); return () => clearTimeout(timer); }, [navigate]);