import fetch from "node-fetch"; const SUPABASE_URL = "https://yuanqfswhberkoevtmfr.supabase.co"; const SUPABASE_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ"; console.log("\n🔐 TESTANDO COM AUTENTICAÇÃO\n"); console.log("Precisamos de um usuário válido para fazer login."); console.log("Digite o email e senha de um usuário que você sabe que existe:\n"); // Credenciais fornecidas pelo usuário const EMAIL_TESTE = "riseup@popcode.com.br"; const SENHA_TESTE = "riseup"; async function testarComAutenticacao() { console.log(`📧 Tentando login com: ${EMAIL_TESTE}\n`); // PASSO 1: Fazer login try { const loginResponse = await fetch( `${SUPABASE_URL}/auth/v1/token?grant_type=password`, { method: "POST", headers: { apikey: SUPABASE_ANON_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ email: EMAIL_TESTE, password: SENHA_TESTE, }), } ); if (!loginResponse.ok) { console.log("❌ Login falhou:", loginResponse.status); const error = await loginResponse.text(); console.log(error); console.log( "\n💡 SOLUÇÃO: Use um email/senha de usuário que você já cadastrou!" ); return; } const loginData = await loginResponse.json(); const accessToken = loginData.access_token; console.log("✅ Login bem-sucedido!"); console.log(`👤 User ID: ${loginData.user?.id}`); console.log(`🔑 Token: ${accessToken.substring(0, 50)}...\n`); // PASSO 2: Buscar médicos COM o token console.log("📋 Buscando médicos COM autenticação...\n"); const medicosResponse = await fetch( `${SUPABASE_URL}/rest/v1/doctors?select=*`, { method: "GET", headers: { apikey: SUPABASE_ANON_KEY, Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json", }, } ); if (medicosResponse.ok) { const medicos = await medicosResponse.json(); console.log(`✅ MÉDICOS ENCONTRADOS: ${medicos.length}\n`); if (medicos.length > 0) { console.log("📋 Lista de médicos:\n"); medicos.forEach((medico, index) => { console.log( `${index + 1}. ${medico.full_name || medico.nome || "Sem nome"}` ); console.log(` CRM: ${medico.crm}`); console.log( ` Especialidade: ${medico.specialty || medico.especialidade}` ); console.log(` Email: ${medico.email}`); console.log(""); }); } } else { console.log("❌ Erro ao buscar médicos:", medicosResponse.status); const error = await medicosResponse.text(); console.log(error); } // PASSO 3: Buscar pacientes COM o token console.log("\n📋 Buscando pacientes COM autenticação...\n"); const pacientesResponse = await fetch( `${SUPABASE_URL}/rest/v1/patients?select=*`, { method: "GET", headers: { apikey: SUPABASE_ANON_KEY, Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json", }, } ); if (pacientesResponse.ok) { const pacientes = await pacientesResponse.json(); console.log(`✅ PACIENTES ENCONTRADOS: ${pacientes.length}\n`); if (pacientes.length > 0) { console.log("📋 Lista de pacientes:\n"); pacientes.slice(0, 5).forEach((paciente, index) => { console.log( `${index + 1}. ${paciente.full_name || paciente.nome || "Sem nome"}` ); console.log(` Email: ${paciente.email}`); console.log(` CPF: ${paciente.cpf}`); console.log(""); }); if (pacientes.length > 5) { console.log(`... e mais ${pacientes.length - 5} pacientes\n`); } } } else { console.log("❌ Erro ao buscar pacientes:", pacientesResponse.status); const error = await pacientesResponse.text(); console.log(error); } console.log( "\n✅ SUCESSO! Os dados ESTÃO no Supabase e são acessíveis com autenticação!\n" ); console.log("🎯 CONCLUSÃO:"); console.log(" - RLS está configurado corretamente"); console.log(" - Dados precisam de autenticação para serem lidos"); console.log(" - A aplicação funciona porque o usuário está logado\n"); } catch (error) { console.error("❌ Erro:", error.message); } } testarComAutenticacao();