我已经使用 intuit 开发者帐户创建了一个 webhook https://developer.intuit.com/app/developer/qbo/docs/develop/webhooks#configuring-webhooks
它工作正常,我的问题是如何使用验证者令牌来保护 webhook?
我看到各种 intuit 标题,但不知道如何使用它们
有详细文档
这里有一些关于如何生成 HMAC 哈希值(在 Ruby 中使用 HMAC SHA256)以及如何将 Base64 签名转换为 Base16(在 Ruby 中将十六进制摘要转换为 Base64)的更多信息。为了比较这些值,Rails 确实实现了一个
safe_compare
方法 (https://api.rubyonrails.org/classes/ActiveSupport/SecurityUtils.html)。
这里是代码(假设使用 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