diff --git a/backend/services/memberTransferService.js b/backend/services/memberTransferService.js index 42b9400..f5e7207 100644 --- a/backend/services/memberTransferService.js +++ b/backend/services/memberTransferService.js @@ -165,6 +165,37 @@ class MemberTransferService { } } + // Debug-Logging für Login-Credentials + if (loginEndpointUrl) { + if (loginCredentials && Object.keys(loginCredentials).length > 0) { + devLog('[transferMembers] Login-Credentials gefunden:', Object.keys(loginCredentials)); + // Logge nur die Keys, nicht die Werte (Sicherheit) + devLog('[transferMembers] Login-Endpoint:', loginEndpointUrl); + devLog('[transferMembers] Login-Format:', config.loginFormat || 'json'); + + // Mapping: Wenn "username" vorhanden ist, aber kein "email", verwende "username" als "email" + // Viele APIs erwarten "email" statt "username" + if (loginCredentials.username && !loginCredentials.email) { + devLog('[transferMembers] Mappe "username" zu "email" für Login'); + loginCredentials.email = loginCredentials.username; + // Entferne username, falls email erwartet wird + // delete loginCredentials.username; // Auskommentiert, falls beide benötigt werden + } + } else { + devLog('[transferMembers] WARNUNG: Keine Login-Credentials gefunden!'); + devLog('[transferMembers] loginEndpointUrl:', loginEndpointUrl); + devLog('[transferMembers] config.loginEndpoint:', config.loginEndpoint); + devLog('[transferMembers] savedConfig vorhanden:', !!savedConfig); + if (savedConfig) { + const savedCreds = savedConfig.getLoginCredentials(); + devLog('[transferMembers] Gespeicherte Credentials vorhanden:', !!savedCreds && Object.keys(savedCreds).length > 0); + if (savedCreds) { + devLog('[transferMembers] Gespeicherte Credential-Keys:', Object.keys(savedCreds)); + } + } + } + } + if (loginEndpointUrl && loginCredentials && Object.keys(loginCredentials).length > 0) { try { const loginResult = await this.performLogin( @@ -411,6 +442,20 @@ class MemberTransferService { */ async performLogin(endpoint, format, credentials) { try { + // Debug-Logging + devLog('[performLogin] Endpoint:', endpoint); + devLog('[performLogin] Format:', format); + devLog('[performLogin] Credential-Keys:', Object.keys(credentials || {})); + devLog('[performLogin] Credentials vorhanden:', !!(credentials && Object.keys(credentials).length > 0)); + + if (!credentials || Object.keys(credentials).length === 0) { + return { + success: false, + error: 'Keine Login-Credentials übergeben', + statusCode: 400 + }; + } + let requestConfig = { url: endpoint, method: 'POST', @@ -425,6 +470,7 @@ class MemberTransferService { 'Content-Type': 'application/json' }; requestConfig.data = credentials; + devLog('[performLogin] Sende JSON-Daten:', JSON.stringify(credentials, null, 2).replace(/("password"[^,}]*")([^"]*)(")/g, '$1***$3')); } else if (format === 'form-data' || format === 'multipart/form-data') { const FormData = (await import('form-data')).default; const formData = new FormData();