144 lines
4.6 KiB
JavaScript
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();
|