Uma visão geral das solicitações de validação com origem da HubSpot para uma integração.
X-HubSpot-Signature-V3
e siga as instruções associadas para validar a versão v3 da assinatura.X-HubSpot-Signature-Version
e siga as instruções associadas abaixo com base em se a versão é v1
ou v2
.X-HubSpot-Signature-Version
definido como v1
. O cabeçalho X-HubSpot-Signature
será um hash SHA-256 gerado usando o segredo do cliente do seu aplicativo combinado com detalhes da solicitação.
Para verificar a versão da assinatura, siga as seguintes etapas:
Client secret
+ request body
(se presente).X-HubSpot-Signature
:
232db2615f3d666fe21a8ec971ac7b5402d33b9a925784df3ca654d05f4817de
X-HubSpot-Signature-Version
definido como v2
. O cabeçalho X-HubSpot-Signature
será um hash SHA-256 gerado usando o segredo do cliente do seu aplicativo combinado com detalhes da solicitação.
Para verificar essa assinatura, execute as seguintes etapas:
Client secret
+ http method
+ URI
+ request body
(se presente).GET
, você precisaria do segredo do cliente do seu aplicativo e de campos específicos dos metadados da sua solicitação. Esses campos estão listados abaixo com valores de espaço reservado incluídos:
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
GET
https://www.example.com/webhook_uri
""
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyGEThttps://www.example.com/webhook_uri
Depois de calcular um hash SHA-256 da string concatenada acima, a assinatura resultante que você espera corresponder à do cabeçalho seria: eee2dddcc73c94d699f5e395f4b9d454a069a6855fbfa152e91e88823087200e
POST
, você precisaria do segredo do cliente do seu aplicativo, campos específicos dos metadados da sua solicitação e uma representação de string do corpo da solicitação (por exemplo, usando JSON.stringify(request.body)
para um serviço Node.js). Esses campos estão listados abaixo com valores de espaço reservado incluídos:
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
POST
https://www.example.com/webhook_uri
{"example_field":"example_value"}
yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyPOSThttps://www.example.com/webhook_uri{"example_field":"example_value"}
Depois de calcular um hash SHA-256 da string concatenada acima, a assinatura resultante que você espera corresponder à do cabeçalho seria:9569219f8ba981ffa6f6f16aa0f48637d35d728c7e4d93d0d52efaa512af7900
Após fazer um [SHA] da assinatura, você pode então comparar a assinatura esperada resultante com aquela fornecida no cabeçalho x-hubspot-signature da solicitação:
Os trechos de código abaixo detalham como você pode incorporar a validação do pedido v2
para um pedido GET
se você estivesse executando um servidor Express para lidar com solicitações de entrada. Lembre-se de que o bloco de código abaixo é um exemplo e omite certas dependências que talvez sejam necessárias para executar um serviço Express completo. Confirme se você está executando as bibliotecas estáveis e seguras mais recentes ao implementar a validação de solicitação para seu serviço específico.
X-HubSpot-Signature-v3
será um hash HMAC SHA-256 gerado usando o segredo do cliente do seu aplicativo combinado com detalhes da solicitação. Também conterá o cabeçalho X-HubSpot-Request-Timestamp
.
Ao validar uma solicitação usando o cabeçalho X-HubSpot-Signature-v3, você precisará
Valor codificado | Valor decodificado |
---|---|
%3A | : |
%2F | / |
%3F | ? |
%40 | @ |
%21 | ! |
%24 | $ |
%27 | ' |
%28 | ( |
%29 | ) |
%2A | * |
%2C | , |
%3B | ; |
requestMethod
+ requestUri
+ requestBody
+ data/hora. O registro de data e hora é fornecido pelo cabeçalho X-HubSpot-Request-Timestamp
.POST
se você estivesse executando um serviço de backend para lidar com solicitações recebidas. Tenha em mente que os blocos de código abaixo omitem certas dependências que você pode precisar para executar um serviço de backend completo. Confirme se você está executando as bibliotecas estáveis e seguras mais recentes ao implementar a validação de solicitação para seu serviço específico.