2 * Debug MeshCentral Login
5require('dotenv').config();
6const https = require('https');
7const querystring = require('querystring');
9const MESHCENTRAL_URL = process.env.MESHCENTRAL_URL || 'https://rmm-psa-meshcentral-aq48h.ondigitalocean.app';
10const MESHCENTRAL_USER = process.env.MESHCENTRAL_ADMIN_USER || 'admin';
11const MESHCENTRAL_PASSWORD = process.env.MESHCENTRAL_ADMIN_PASS || 'admin';
13console.log('š Debugging MeshCentral Login...\n');
14console.log(`URL: ${MESHCENTRAL_URL}`);
15console.log(`User: ${MESHCENTRAL_USER}`);
16console.log(`Pass: ${MESHCENTRAL_PASSWORD}\n`);
18// Extract hostname from URL
19const urlObj = new URL(MESHCENTRAL_URL);
21const postData = querystring.stringify({
23 username: MESHCENTRAL_USER,
24 password: MESHCENTRAL_PASSWORD,
29 hostname: urlObj.hostname,
34 'Content-Type': 'application/x-www-form-urlencoded',
35 'Content-Length': Buffer.byteLength(postData)
37 rejectUnauthorized: false
40console.log('š¤ Sending login request...');
41console.log(` POST ${options.hostname}/login`);
42console.log(` Data: ${postData}\n`);
44const req = https.request(options, (res) => {
45 console.log(`ā
Response received:`);
46 console.log(` Status: ${res.statusCode}`);
47 console.log(` Headers:`, res.headers);
49 const cookies = res.headers['set-cookie'];
51 console.log(`\nšŖ Cookies:`);
52 cookies.forEach(cookie => {
53 console.log(` ${cookie.split(';')[0]}`);
58 res.on('data', (chunk) => {
63 console.log(`\nš„ Response body (first 500 chars):`);
64 console.log(body.substring(0, 500));
66 if (cookies && cookies.some(c => c.includes('xid='))) {
67 console.log('\nā
Login appears successful (got xid cookie)');
69 console.log('\nā Login failed (no xid cookie)');
74req.on('error', (e) => {
75 console.error(`\nā Request error: ${e.message}`);