如何在 webhook 上使用 intuit webhook 验证器令牌

问题描述 投票:0回答:2

我已经使用 intuit 开发者帐户创建了一个 webhook https://developer.intuit.com/app/developer/qbo/docs/develop/webhooks#configuring-webhooks

它工作正常,我的问题是如何使用验证者令牌来保护 webhook?

我看到各种 intuit 标题,但不知道如何使用它们

headers

ruby-on-rails intuit-partner-platform
2个回答
0
投票

有详细文档

  1. 使用您的验证者令牌作为密钥,使用 HMAC_SHA256_ALGORITHM 对通知负载进行哈希处理。
  2. 将 intuit-signature 标头从 base-64 转换为 base-16。
  3. 将步骤 1 中的值与通知中的 intuit-signature 标头进行比较。这些值应该相同。

https://developer.intuit.com/app/developer/qbo/docs/develop/webhooks/managing-webhooks-notifications#validating-the-notification

这里有一些关于如何生成 HMAC 哈希值(在 Ruby 中使用 HMAC SHA256)以及如何将 Base64 签名转换为 Base16(在 Ruby 中将十六进制摘要转换为 Base64)的更多信息。为了比较这些值,Rails 确实实现了一个

safe_compare
方法 (https://api.rubyonrails.org/classes/ActiveSupport/SecurityUtils.html)。


0
投票

这里是代码(假设使用 ruby-on-rails 来实现

request
):

payload = request.body.read
signature = request.headers['intuit-signature']
key = "..." # copy / paste 'Verifier Token' via Intuit
digest = OpenSSL::HMAC.base64digest('SHA256', key, payload)

ActiveSupport::SecurityUtils.secure_compare(signature, digest) # true or false
© www.soinside.com 2019 - 2024. All rights reserved.