#!/usr/bin/env node
/**
* Debug Authentication Response
* Let's see what the API is actually returning
*/
const https = require('https');
async function makeHttpRequest(hostname, path, method = 'GET', headers = {}, postData = null) {
return new Promise((resolve, reject) => {
const options = {
hostname,
path,
method,
headers: {
'Content-Type': 'application/json',
'User-Agent': 'Debug-Test/1.0',
...headers
}
};
if (postData && method === 'POST') {
const data = JSON.stringify(postData);
options.headers['Content-Length'] = Buffer.byteLength(data);
}
console.log('🔍 Making request to:', `https://${hostname}${path}`);
console.log('🔍 Method:', method);
console.log('🔍 Headers:', JSON.stringify(options.headers, null, 2));
if (postData) {
console.log('🔍 POST data:', JSON.stringify(postData, null, 2));
}
const req = https.request(options, (res) => {
let responseBody = '';
res.on('data', (chunk) => {
responseBody += chunk;
});
res.on('end', () => {
console.log('📥 Response status:', res.statusCode);
console.log('📥 Response headers:', JSON.stringify(res.headers, null, 2));
console.log('📥 Response body:', responseBody);
try {
const parsedBody = responseBody ? JSON.parse(responseBody) : null;
resolve({
statusCode: res.statusCode,
headers: res.headers,
body: parsedBody,
rawBody: responseBody
});
} catch (error) {
console.log('📥 Body is not JSON, returning raw');
resolve({
statusCode: res.statusCode,
headers: res.headers,
body: null,
rawBody: responseBody
});
}
});
});
req.on('error', (error) => {
console.log('❌ Request error:', error.message);
reject(error);
});
req.setTimeout(10000, () => {
req.destroy();
reject(new Error('Request timeout'));
});
if (postData && method === 'POST') {
req.write(JSON.stringify(postData));
}
req.end();
});
}
async function testAuth() {
console.log('🧪 Testing SAOLA Authentication');
console.log('================================');
try {
const response = await makeHttpRequest(
'api.umbrellacost.io',
'/api/v1/users/signin',
'POST',
{},
{
username: 'david+saola@umbrellacost.com',
password: 'Dsamsung1!'
}
);
console.log('\n✅ Request completed successfully!');
console.log('Status code:', response.statusCode);
console.log('Has jwtToken?', !!response.body?.jwtToken);
console.log('Has token?', !!response.body?.token);
console.log('Response keys:', response.body ? Object.keys(response.body) : 'No body');
if (response.body?.jwtToken) {
console.log('JWT Token found:', response.body.jwtToken.substring(0, 50) + '...');
}
} catch (error) {
console.log('❌ Authentication failed:', error.message);
}
console.log('\n🧪 Testing AllCloud Authentication');
console.log('==================================');
try {
const response = await makeHttpRequest(
'api.umbrellacost.io',
'/api/v1/users/signin',
'POST',
{},
{
username: 'david+allcloud@umbrellacost.com',
password: 'Dsamsung1!123'
}
);
console.log('\n✅ Request completed successfully!');
console.log('Status code:', response.statusCode);
console.log('Has jwtToken?', !!response.body?.jwtToken);
console.log('Has token?', !!response.body?.token);
console.log('Response keys:', response.body ? Object.keys(response.body) : 'No body');
if (response.body?.jwtToken) {
console.log('JWT Token found:', response.body.jwtToken.substring(0, 50) + '...');
}
} catch (error) {
console.log('❌ Authentication failed:', error.message);
}
}
testAuth().catch(console.error);