fix(integrations): support parsedBody in authenticateIntegrationRequest
This commit is contained in:
@@ -17,7 +17,7 @@ export interface IntegrationAuthResult {
|
||||
*/
|
||||
export async function authenticateIntegrationRequest(
|
||||
req: NextRequest,
|
||||
options: { requireTenant?: boolean } = { requireTenant: true }
|
||||
options: { requireTenant?: boolean; parsedBody?: any } = { requireTenant: true }
|
||||
): Promise<IntegrationAuthResult> {
|
||||
const apiKey = req.headers.get('x-api-key') || req.headers.get('X-Api-Key');
|
||||
const n8nKey = process.env.N8N_API_KEY?.trim();
|
||||
@@ -45,18 +45,22 @@ export async function authenticateIntegrationRequest(
|
||||
return { ok: true, caller };
|
||||
}
|
||||
|
||||
// Extraer tenant_id o client_id de query params o body
|
||||
// Extraer tenant_id o client_id de query params o parsedBody
|
||||
let tenantId =
|
||||
req.nextUrl.searchParams.get('tenant_id') ||
|
||||
req.nextUrl.searchParams.get('client_id');
|
||||
|
||||
if (!tenantId && options.parsedBody) {
|
||||
tenantId = options.parsedBody.tenant_id || options.parsedBody.client_id;
|
||||
}
|
||||
|
||||
if (!tenantId && req.method !== 'GET') {
|
||||
try {
|
||||
const cloned = req.clone();
|
||||
const body = await cloned.json();
|
||||
tenantId = body.tenant_id || body.client_id;
|
||||
} catch {
|
||||
// Ignorar error al parsear body si no viene JSON
|
||||
// Ignorar
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user