我们目前正在实现 Mailgun 的 webhook,以将电子邮件回复转换为我们应用程序中评论线程中的回复。我们设置了一个路由来匹配收件人并将操作设置为 store(notify="https://example.com/example-endpoint")
。 Mailgun 将数据 POST 到给定的端点,然后我们处理消息并将其添加到应用程序注释线程。
我的问题是这个 :
如何锁定端点以便 Mailgun 是唯一可以在此处发布的实体?是否有可以列入白名单的 IP 列表?他们发送了一个特殊的 key ,我可以根据私有(private) API key 进行验证吗?
最佳答案
我在文档中找到了我自己的答案。我应该更仔细地阅读文档。
https://documentation.mailgun.com/user_manual.html#webhooks 下的“保护 Webhooks”部分说:
我必须将有效负载中的 signature
值与使用 api key 作为 HMAC key 的 timestamp
和 token
的 SHA256 HMAC 哈希值进行比较。
例如:
$_POST['signature'] === hash_hmac('sha256', $_POST['timestamp'] . $_POST['token'], 'example-api-key);
关于webhooks - Mailgun Webhook 访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32100710/