如何验证 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 之间的斜杠。

我在Plivo SDK(4.3.2)

的当前实现中验证了它

顺便说一下,如果您不确定在哪里可以找到您的 AUTH_TOKEN 和 YOUR_CALLBACK_URL

AUTH_TOKEN:

YOUR_CALLBACK_URL: