Un resumen de las solicitudes procedentes de HubSpot a una integración.
X-HubSpot-Signature-V3 y sigue las instrucciones asociadas para validar la versión v3 de la firma.X-HubSpot-Signature-Version, y luego sigue las instrucciones asociadas que aparecen abajo según si la versión es v1 o v2.X-HubSpot-Signature-Version definido como v1. El encabezado X-HubSpot-Signature será un hash SHA-256 creado usando el secreto del cliente de tu aplicación junto con detalles de la solicitud.
Para verificar esta versión de la firma, realiza los siguientes pasos:
Client secret + request body (si está presente).X-HubSpot-Signature:
232db2615f3d666fe21a8ec971ac7b5402d33b9a925784df3ca654d05f4817de
X-HubSpot-Signature-Version definido como v2. El encabezado X-HubSpot-Signature será un hash SHA-256 creado usando el secreto del cliente de tu aplicación junto con detalles de la solicitud.
Para verificar esta firma, realiza los siguientes pasos:
Client secret + http method + URI + request body (si está presente).GET, necesitarías el secreto del cliente de tu aplicación y campos específicos de los metadatos de la solicitud. Estos campos se enumeran a continuación con valores de marcadores de posición incluidos:
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyGEThttps://www.example.com/webhook_uri""yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyGEThttps://www.example.com/webhook_uri
Después de calcular un hash SHA-256 de la cadena concatenada anterior, la firma resultante que esperarías que coincidiera con la del encabezado sería: eee2dddcc73c94d699f5e395f4b9d454a069a6855fbfa152e91e88823087200e
POST, necesitarías el secreto del cliente de tu aplicación, campos específicos de los metadatos de la solicitud y una representación de cadena del cuerpo de la solicitud (por ejemplo, usar JSON.stringify(request.body) para un servicio de Node.js). Estos campos se enumeran a continuación con valores de marcadores de posición incluidos:
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyPOSThttps://www.example.com/webhook_uri{"example_field":"example_value"}yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyPOSThttps://www.example.com/webhook_uri{"example_field":"example_value"}
Después de calcular un hash SHA-256 de la cadena concatenada anterior, la firma resultante que esperarías que coincidiera con la del encabezado sería:9569219f8ba981ffa6f6f16aa0f48637d35d728c7e4d93d0d52efaa512af7900
Después de la firma [SHA-ing], podrías comparar la firma esperada resultante con la proporcionada en el encabezado x-hubspot-signature de la solicitud:
El fragmento de código de Node.js que aparece abajo detalla cómo podrías incorporar la validación de solicitudes v2 correspondiente a una solicitud GET si estuvieras ejecutando un servidor Express para manejar las solicitudes entrantes. Ten en cuenta que el bloque de código que aparece abajo es un ejemplo y omite ciertas dependencias que podrías necesitar para ejecutar un servicio Express con todas las funciones. Confirma que estás ejecutando las bibliotecas estables y seguras más recientes al implementar la validación de solicitudes para tu servicio específico.
X-HubSpot-Signature-v3 será un hash SHA-256 creado usando el secreto del cliente de tu aplicación junto con detalles de la solicitud. También incluirá un encabezado X-HubSpot-Request-Timestamp.
Al validar una solicitud que utiliza el encabezado X-HubSpot-Signature-v3, deberás
| Valor codificado | Valor decodificado |
|---|---|
%3A | : |
%2F | / |
%3F | ? |
%40 | @ |
%21 | ! |
%24 | $ |
%27 | ' |
%28 | ( |
%29 | ) |
%2A | * |
%2C | , |
%3B | ; |
requestMethod + requestUri + requestBody + marca de tiempo. La marca de tiempo es proporcionada por el encabezado X-HubSpot-Request-Timestamp.POST si estuvieras ejecutando un servicio backend para gestionar las solicitudes entrantes. Ten en cuenta que el bloque de código que aparece abajo es un ejemplo y omite ciertas dependencias que podrías necesitar para ejecutar un servicio Express con todas las funciones. Confirma que estás ejecutando las bibliotecas estables y seguras más recientes al implementar la validación de solicitudes para tu servicio específico.