riseup-squad18/MEDICONNECT 2/scripts/testar-com-autenticacao.js

144 lines
4.6 KiB
JavaScript

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();