express - Azure 事件 Webhook 验证失败
问题描述
我正在尝试使用 Azure 事件验证 webhook。根据他们的文档,请求具有以下主体:
[
{
"id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66",
"topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"subject": "",
"data": {
"validationCode": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6",
"validationUrl": "https://rp-eastus2.eventgrid.azure.net:553/eventsubscriptions/estest/validate?id=512d38b6-c7b8-40c8-89fe-f46f9e9622b6&t=2018-04-26T20:30:54.4538837Z&apiVersion=2018-05-01-preview&token=1A1A1A1A"
},
"eventType": "Microsoft.EventGrid.SubscriptionValidationEvent",
"eventTime": "2018-01-25T22:12:19.4556811Z",
"metadataVersion": "1",
"dataVersion": "1"
}
]
应该返回:
{
"validationResponse": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6"
}
我已经与邮递员核实我的应用程序正是这样做的。这是一个片段:
const validationEventType = 'Microsoft.EventGrid.SubscriptionValidationEvent';
for (var events in req.body) {
const body = req.body[events];
// Validate the event-hook when the eventhook is created
if (body.data && body.eventType === validationEventType) {
const code = body.data.validationCode;
const resBody = { validationResponse: code };
return res.status(200).json(resBody);
}
仍然当我尝试使用 Azure 验证它时,我收到以下错误消息:
https://.ngrok.io/v* 的 Webhook 验证握手失败。/api/ /媒体工作。Http POST 请求返回 2XX 响应,响应正文为 {"validationResponse":"301549B7-E5A7-4D5B-9D35-8A4CAD6D9494"。当在响应正文中没有验证代码的情况下接受验证请求时,验证事件中包含的验证 url 上会出现 Http GET(10 分钟内)。用于故障排除*
任何想法可能导致此问题?
解决方案
我找到了解决方法,但是,我不完全确定错误是什么。我在我的请求中看到我有很多标头,例如set-cookie
,X-...
移动路由器以不使用 cookie 解析器、护照 cors、头盔删除了很多 cookie,并使握手按预期工作。
推荐阅读
- sql - 加入不同的列
- ggplot2 - 如何更改ggplot中每行的图例项数
- javascript - windows弹出onload事件不起作用Javascript
- docker - 可以访问 WireGuard Docker 容器以将 Peers 重定向到微服务
- javascript - 使用一个 for 循环的倒三角形
- azure-pipelines - 仅当合并拉取请求时才在 Azure 管道中运行任务
- typescript - 使用 import() 而不是 require() React Native 图像导入
- kotlin - 如何在 IntelliJ IDEA 中包含 Kotlin 配置 UI 提供的依赖项?
- kubernetes - 删除的 k8s secret 的数据在更新后仍然存在
- python - Python-requests-get-fails-with-403-forbidden-even-after-using-headers-and-session - PYTHON 3.8