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