diff --git a/src/lib/logto/client.ts b/src/lib/logto/client.ts index 9c0b966..18a0c77 100644 --- a/src/lib/logto/client.ts +++ b/src/lib/logto/client.ts @@ -126,16 +126,20 @@ export async function handleCallback(): Promise { const code = url.searchParams.get('code'); const state = url.searchParams.get('state'); + console.log('[Logto Callback] Recebido:', { hasCode: !!code, hasState: !!state }); + if (!code) return false; const expectedState = sessionStorage.getItem('logto_state'); + const verifier = sessionStorage.getItem('logto_verifier') || ''; + + console.log('[Logto Callback] State match?', { received: state, expected: expectedState, hasVerifier: !!verifier }); + if (state !== expectedState) { console.error('Logto: state mismatch'); return false; } - const verifier = sessionStorage.getItem('logto_verifier') || ''; - const body = new URLSearchParams({ grant_type: 'authorization_code', client_id: APP_ID, diff --git a/src/pages/Callback.tsx b/src/pages/Callback.tsx index aed2395..48d1544 100644 --- a/src/pages/Callback.tsx +++ b/src/pages/Callback.tsx @@ -24,7 +24,7 @@ const Callback = () => { } else { setStatus('error'); setMessage('Falha no login. Tente novamente.'); - setTimeout(() => navigate('/auth'), 2500); + // Não navega automaticamente - deixa o user ver o erro } } catch (err) { if (cancelled) return;