feat: add user authentication UI to header component
Add login and register dialogs, user dropdown menu with profile link and logout option, and integrate with session management hook. Prevent hydration mismatches by conditionally rendering auth elements after mount. Update package-lock.json with new @esbuild dependencies for build tooling.
This commit is contained in:
1 parent
e641138887
commit
55eebde0ba
55 files changed
+7353
-7
No files matched your search
@@ -0,0 +1,99 @@
|
||||
/**
|
||||
* Script de teste de conexão com PostgreSQL
|
||||
* Executa um health check e tenta uma query simples
|
||||
*/
|
||||
|
||||
// Carregar variáveis de ambiente
|
||||
import { config } from "dotenv";
|
||||
import { resolve } from "path";
|
||||
|
||||
// Tentar carregar .env.local primeiro, depois .env
|
||||
config({ path: resolve(process.cwd(), ".env.local") });
|
||||
config({ path: resolve(process.cwd(), ".env") });
|
||||
|
||||
import { healthCheck, query, closePool } from "./index";
|
||||
|
||||
async function testConnection() {
|
||||
console.log("🔍 Testando conexão com PostgreSQL...\n");
|
||||
|
||||
// Verificar variável de ambiente
|
||||
if (!process.env.PG_DB) {
|
||||
console.error("❌ PG_DB não está definido nas variáveis de ambiente");
|
||||
console.log("\n💡 Configure a variável PG_DB:");
|
||||
console.log(" export PG_DB=postgresql://user:pass@host:port/db");
|
||||
console.log(" ou crie um arquivo .env.local com:");
|
||||
console.log(" PG_DB=postgresql://user:pass@host:port/db\n");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log("✅ Variável PG_DB encontrada");
|
||||
console.log(` Host: ${process.env.PG_DB.split("@")[1]?.split("/")[0] || "não detectado"}\n`);
|
||||
|
||||
try {
|
||||
// Health check
|
||||
console.log("📡 Executando health check...");
|
||||
const isHealthy = await healthCheck();
|
||||
|
||||
if (!isHealthy) {
|
||||
console.error("❌ Health check falhou - banco não está acessível");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log("✅ Health check passou\n");
|
||||
|
||||
// Query de teste
|
||||
console.log("📊 Executando query de teste...");
|
||||
const result = await query("SELECT version(), NOW() as current_time");
|
||||
|
||||
console.log("✅ Query executada com sucesso");
|
||||
console.log(` PostgreSQL Version: ${result.rows[0]?.version?.split(" ")[0] || "N/A"}`);
|
||||
console.log(` Current Time: ${result.rows[0]?.current_time || "N/A"}\n`);
|
||||
|
||||
// Verificar se as tabelas existem
|
||||
console.log("🔍 Verificando tabelas...");
|
||||
const tablesResult = await query(`
|
||||
SELECT table_name
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'public'
|
||||
AND table_name IN ('users', 'user_characters')
|
||||
ORDER BY table_name
|
||||
`);
|
||||
|
||||
const tables = tablesResult.rows.map((row: any) => row.table_name);
|
||||
|
||||
if (tables.length === 0) {
|
||||
console.log("⚠️ Tabelas não encontradas. Execute as migrations:");
|
||||
console.log(" pnpm db:migrate\n");
|
||||
} else {
|
||||
console.log(`✅ Tabelas encontradas: ${tables.join(", ")}\n`);
|
||||
}
|
||||
|
||||
console.log("🎉 Conexão com PostgreSQL está funcionando corretamente!");
|
||||
|
||||
// Fechar pool
|
||||
await closePool();
|
||||
process.exit(0);
|
||||
} catch (error) {
|
||||
console.error("❌ Erro ao conectar com PostgreSQL:");
|
||||
console.error(error instanceof Error ? error.message : String(error));
|
||||
|
||||
if (error instanceof Error && error.message.includes("timeout")) {
|
||||
console.log("\n💡 Verifique:");
|
||||
console.log(" - O servidor PostgreSQL está acessível?");
|
||||
console.log(" - A URL de conexão está correta?");
|
||||
console.log(" - O firewall permite conexões?");
|
||||
}
|
||||
|
||||
if (error instanceof Error && error.message.includes("authentication")) {
|
||||
console.log("\n💡 Verifique:");
|
||||
console.log(" - Usuário e senha estão corretos?");
|
||||
console.log(" - O usuário tem permissão para acessar o banco?");
|
||||
}
|
||||
|
||||
await closePool();
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
testConnection();
|
||||
|
||||
Reference in new issue
Block a user