如何验证 X-PLIVO-SIGNATURE
How to validate X-PLIVO-SIGNATURE
我们正在使用 plivo send/receive 短信。我们有一个 webhook 配置来接收客户发送的消息。我们想验证请求是否实际上来自 plivo。谁能告诉我如何使用我们拥有的授权令牌进行验证?
Plivo documentation here 有一个部分介绍如何验证传入的 webhook 请求的签名(它使用 HMAC)。
有点棘手。 Plivo 文档中有错误。或者,您可以将其视为实施中的错误。
如果您正在使用 Ruby,您需要的代码如文档所述是:
Base64.encode64(OpenSSL::HMAC.digest("SHA256", "AUTH_TOKEN", "YOUR_CALLBACK_URL/REQUEST_HEADER_X-Plivo-Signature-V2-Nonce"))
但是,这永远行不通。你永远不会得到与 x-plivo-signature-v2 匹配的哈希值,对吧?
我还尝试使用 Auth Key,而不是 Auth Token。以及这些字段的每个组合。
要使其正常工作,您必须将代码更改为此版本:
Base64.encode64(OpenSSL::HMAC.digest("SHA256", "AUTH_TOKEN", "YOUR_CALLBACK_URLREQUEST_HEADER_X-Plivo-Signature-V2-Nonce"))
你注意到区别了吗?
是的!删除回调 URL 和 X-Plivo-Signature-V2-Nonce 之间的斜杠。
的当前实现中验证了它
顺便说一下,如果您不确定在哪里可以找到您的 AUTH_TOKEN 和 YOUR_CALLBACK_URL
AUTH_TOKEN:
YOUR_CALLBACK_URL:
我们正在使用 plivo send/receive 短信。我们有一个 webhook 配置来接收客户发送的消息。我们想验证请求是否实际上来自 plivo。谁能告诉我如何使用我们拥有的授权令牌进行验证?
Plivo documentation here 有一个部分介绍如何验证传入的 webhook 请求的签名(它使用 HMAC)。
有点棘手。 Plivo 文档中有错误。或者,您可以将其视为实施中的错误。
如果您正在使用 Ruby,您需要的代码如文档所述是:
Base64.encode64(OpenSSL::HMAC.digest("SHA256", "AUTH_TOKEN", "YOUR_CALLBACK_URL/REQUEST_HEADER_X-Plivo-Signature-V2-Nonce"))
但是,这永远行不通。你永远不会得到与 x-plivo-signature-v2 匹配的哈希值,对吧? 我还尝试使用 Auth Key,而不是 Auth Token。以及这些字段的每个组合。
要使其正常工作,您必须将代码更改为此版本:
Base64.encode64(OpenSSL::HMAC.digest("SHA256", "AUTH_TOKEN", "YOUR_CALLBACK_URLREQUEST_HEADER_X-Plivo-Signature-V2-Nonce"))
你注意到区别了吗? 是的!删除回调 URL 和 X-Plivo-Signature-V2-Nonce 之间的斜杠。
的当前实现中验证了它顺便说一下,如果您不确定在哪里可以找到您的 AUTH_TOKEN 和 YOUR_CALLBACK_URL
AUTH_TOKEN:
YOUR_CALLBACK_URL: