3.8 KiB
3.8 KiB
🔍 Diagnóstico del Panel de Administración
Pasos para diagnosticar el problema
1. Abre la consola del navegador
- Presiona
F12oCtrl+Shift+I - Ve a la pestaña Console
2. Ejecuta este código en la consola:
// Diagnóstico completo
(async () => {
console.log('🔍 DIAGNÓSTICO DEL PANEL DE ADMINISTRACIÓN\n');
// 1. Verificar token
const token = localStorage.getItem('admin_token');
console.log('1️⃣ Token en localStorage:', token ? token.substring(0, 30) + '...' : '❌ NO HAY TOKEN');
// 2. Verificar usuario
const user = localStorage.getItem('admin_user');
console.log('2️⃣ Usuario en localStorage:', user ? JSON.parse(user).email : '❌ NO HAY USUARIO');
// 3. Probar endpoint de stats
const API_URL = 'http://localhost:3000';
try {
const statsResponse = await fetch(`${API_URL}/api/stats/content`, {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
console.log('\n3️⃣ Respuesta de /api/stats/content:');
console.log(' Status:', statsResponse.status);
if (statsResponse.ok) {
const data = await statsResponse.json();
console.log(' ✅ Datos recibidos:');
console.log(' Protocolos:', data.protocols);
console.log(' Guías:', data.guides);
console.log(' Fármacos:', data.drugs);
console.log(' Checklists:', data.checklists);
} else {
const error = await statsResponse.json();
console.log(' ❌ Error:', error);
}
} catch (err) {
console.log(' ❌ Error de red:', err.message);
}
// 4. Probar endpoint de content
try {
const contentResponse = await fetch(`${API_URL}/api/content`, {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
console.log('\n4️⃣ Respuesta de /api/content:');
console.log(' Status:', contentResponse.status);
if (contentResponse.ok) {
const data = await contentResponse.json();
console.log(' ✅ Datos recibidos:');
console.log(' Total items:', data.total);
console.log(' Items en página:', data.items?.length || 0);
} else {
const error = await contentResponse.json();
console.log(' ❌ Error:', error);
}
} catch (err) {
console.log(' ❌ Error de red:', err.message);
}
// 5. Verificar backend
try {
const healthResponse = await fetch(`${API_URL}/health`);
const health = await healthResponse.json();
console.log('\n5️⃣ Estado del backend:');
console.log(' Status:', health.status);
console.log(' Database:', health.database);
} catch (err) {
console.log(' ❌ Backend no responde:', err.message);
}
console.log('\n✅ Diagnóstico completo');
})();
3. Copia y pega el resultado aquí
4. Si el token no existe o está expirado:
Ejecuta esto para hacer login:
(async () => {
const API_URL = 'http://localhost:3000';
try {
const response = await fetch(`${API_URL}/api/auth/login`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'admin@emerges-tes.local',
password: 'Admin123!'
})
});
if (response.ok) {
const data = await response.json();
localStorage.setItem('admin_token', data.token);
localStorage.setItem('admin_user', JSON.stringify(data.user));
console.log('✅ Login exitoso');
console.log('Usuario:', data.user.email);
console.log('Token guardado');
location.reload(); // Recargar página
} else {
const error = await response.json();
console.error('❌ Error de login:', error);
}
} catch (err) {
console.error('❌ Error de red:', err);
}
})();