如何验证X-PLIVO-SIGNATURE

时间:2019-03-27 14:33:37

标签: plivo

我们正在使用plivo发送/接收SMS消息。我们有一个配置为接收客户发送的消息的Webhook。我们要验证请求实际上是否源自plivo。谁能告诉我如何使用我们拥有的身份验证令牌进行验证?

2 个答案:

答案 0 :(得分:1)

Plivo documentation here包含有关如何验证传入Webhook请求(使用HMAC)的签名的部分。

答案 1 :(得分:1)

有点棘手。 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:enter image description here

YOUR_CALLBACK_URL:enter image description here