Eventos de Assinatura

Cada notificação que enviamos para seu endpoint é assinada. Fazemos isso incluindo um cabeçalho nomeado "Jump-Signature"em cada evento que enviamos. Isso permite que você verifique e garanta que o evento foi enviado pela Jump e não por um terceiro.

O "Jump-Signature"cabeçalho contém a timestampe uma ou mais assinaturas. O timestampé prefixado por t=e cada assinatura é prefixada por um esquema. Os esquemas começam com vseguido por um integer. Atualmente, há apenas um esquema de assinatura que é v1.

Exemplo do Header Jump-Signature:

Jump-Signature: t=1681235417000,v1=b9ffafcd16416bd11e36f877c2d7ccc71633d174f8245abc49fc2aef7e6633c8

As assinaturas são geradas usando um código de autenticação baseado em mensagem hash (HMAC)com SHA-256. Para evitar ataques de downgrade, você deve ignorar todos os esquemas não v1.


Como validar a assinatura

Etapa 1: Extraia o carimbo de data/hora e a assinatura do cabeçalho

Divida o cabeçalho usando o caractere como separador para obter a lista de elementos. Uma vez feito isso, faça outra divisão usando o =caractere como separador, para obter o prefixo e o valor.

O valor obtido do tprefixo corresponde ao timestamp e o v1corresponde à assinatura. Você pode descartar outros valores.

Etapa 2: Prepare a string para comparar assinaturas

Você deve concatenar essas informações:

  • O carimbo de data/hora (como string)

  • O personagem.

  • A carga útil JSON (corpo da solicitação, no stringformato)

Calcule HMACcom a SHA256função hash. Use o segredo (veja qual é o seu segredo clicando aqui )

Exemplo em PHP

Etapa 3: Compare as assinaturas

Compare a assinatura enviada pela Jump no Cabeçalho com a assinatura que você gerou na Etapa 2 .

Exemplo em PHP

Atualizado

Isto foi útil?