#!/usr/bin/env node 'use strict'; /** * Test script to verify SatLoc authentication credentials */ const axios = require('axios'); const mongoose = require('mongoose'); require('./helpers/mongo'); const { PartnerSystemUser } = require('./model/partner'); const partnerConfig = require('./helpers/partner_config'); const { UserTypes } = require('./helpers/constants'); async function testSatLocAuth() { try { console.log('Testing SatLoc authentication...'); // Connect to database await mongoose.connection.asPromise(); console.log('Database connected'); // Find SatLoc partner system user const customerId = '6786d7df571d92737ef69e51'; // From the logs const partnerSystemUser = await PartnerSystemUser.findOne({ customer: customerId, kind: UserTypes.PARTNER_SYSTEM_USER }); if (!partnerSystemUser) { console.error('No SatLoc partner system user found'); process.exit(1); } console.log('Partner System User found:', { id: partnerSystemUser._id, customer: partnerSystemUser.customer, partnerUsername: partnerSystemUser.partnerUsername, username: partnerSystemUser.username, hasPassword: !!partnerSystemUser.password, passwordLength: partnerSystemUser.password?.length, active: partnerSystemUser.active }); // Get credentials via partner config const credentials = partnerConfig.getApiCredentials(partnerSystemUser, 'SATLOC'); console.log('Credentials extracted:', { username: credentials.username, hasPassword: !!credentials.password, passwordLength: credentials.password?.length, endpoint: credentials.endpoint, authMethod: credentials.authMethod }); // Test the working format you provided const BASE_URL = 'https://www.satloccloudfc.com/api/Satloc'; const AUTH = '/AuthenticateAPIUser'; const username = credentials.username; const password = credentials.password; console.log('\nTesting with your working format:'); console.log(`URL: ${BASE_URL}${AUTH}?userLogin=${username}&password=${password.substring(0, 3)}***`); try { const response = await axios(`${BASE_URL}${AUTH}?userLogin=${username}&password=${password}`); console.log('SUCCESS! Authentication worked:', { status: response.status, data: response.data }); } catch (error) { console.log('FAILED! Authentication error:', { status: error.response?.status, statusText: error.response?.statusText, data: error.response?.data, message: error.message }); } process.exit(0); } catch (error) { console.error('Test failed:', error); process.exit(1); } } testSatLocAuth();