- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设置了一个 Typeform webhook它运作良好。
现在我正在尝试保护它,但我被困在了 Validate payload from Typeform 中部分。
我将概述的步骤和 Ruby 示例(以及 Typeform Helpcenter 发送给我的 PHP example)改编为 Node (Meteor):
const crypto = require('crypto');
function post() {
const payload = this.bodyParams;
const stringifiedPayload = JSON.stringify(payload);
const secret = 'the-random-string';
const receivedSignature = lodash.get(request, 'headers.typeform-signature', '');
const hash = crypto
.createHmac('sha256', secret)
.update(stringifiedPayload, 'binary')
.digest('base64');
const actualSignature = `sha256=${hash}`;
console.log('actualSignature:', actualSignature);
console.log('receivedSignature:', receivedSignature);
if (actualSignature !== receivedSignature) {
return { statusCode: 200 };
}
// .. continue ..
});
但是 actualSignature
和 receivedSignature
永远不匹配,我得到的结果如下:
actualSignature: sha256=4xe1AF0apjIgJNf1jSBG+OFwLYZsKoyFBOzRCesXM0g=
receivedSignature: sha256=b+ZdBUL5KcMAjITxkpzIFibOL1eEtvN84JhF2+schPo=
为什么会这样?
最佳答案
您需要使用原始二进制请求,它在文档中指定 here
Using the HMAC SHA-256 algorithm, create a hash (using created_token as a key) of the entire received payload as binary.
这是一个使用 express 和 body-parser 中间件的例子
const crypto = require('crypto');
const express = require("express");
const bodyParser = require('body-parser');
const TYPEFORM_SECRET = 'your-secret';
const app = express();
const port = 3000;
app.use(bodyParser.raw({ type: 'application/json' }));
app.post(`/webhook`, (req, res) => {
const expectedSig = req.header('Typeform-Signature');
const hash = crypto.createHmac('sha256', TYPEFORM_SECRET)
.update(req.body)
.digest('base64');
const actualSig = `sha256=${hash}`;
if (actualSig !== expectedSig) {
// invalid request
res.status(403).send();
return;
}
// successful
res.status(200).send();
});
app.listen(port, () => {
console.log(`listening on port ${port}!`);
});
关于javascript - 在 Node 中验证 TypeForm Webhook 负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56149652/
我需要我的调查接受重定向 url 链接,我们将根据他们的状态将小组成员发送到该链接:完成、超出配额或终止。 此外,我的调查必须收集将在 url 中传递的小组成员 ID,并在重定向期间将其发送回公司,以
我需要我的调查接受重定向 url 链接,我们将根据他们的状态将小组成员发送到该链接:完成、超出配额或终止。 此外,我的调查必须收集将在 url 中传递的小组成员 ID,并在重定向期间将其发送回公司,以
我想将样式参数传递到嵌入的 Typeform 中。我遵循了他们的“嵌入式模式”指南,并将 typeform 存储在 DOM 元素中,但是当我尝试编辑任何 css 时,没有任何反应。 干杯! 最佳答案
我有一个 Typeform嵌入到我的页面中的 iframe 中。从我的 JS 我想知道用户已经完成了类型表单(即单击提交)。 typeform JS 似乎没有提供任何可以收听的事件。目前我只想出了以下
我发现我可以使用以下代码连接到 onSubmit 事件: typeformEmbed.makeWidget(this.$el, 'https://pptt.typeform.com/to/S70gmy
如何在我的 React 应用程序中嵌入 Typeform 表单? Typeform 提供的嵌入代码无法在 JSX 中编译。 这是嵌入代码的示例: (function() { var qs,js,q
我很好奇如何在 www.typeform.com 上集成 Facebook 转换像素 我希望它在 Stripe 付款确认后计为“1”。 我怎样才能做到这一点? 最佳答案 目前这是不可能的。 Typef
我正在尝试使用 Python/Django/DRF 接受来自 Typeform 的表单响应,但由于无法获取匹配的哈希值,因此无法验证 Webhook 请求。 以下是 Typeform 的说明: 1.
我正在使用 Typeform webhook feature每当有人点击嵌入式调查上的提交按钮时,我都会生成 JSON 格式的结果,并且当我使用像 RequestBin 这样的服务时,我得到的结果与文
我们公司用Typeform做了一个表格.当新响应从 Typeform 表单发送到电子表格时,是否可以触发 onSubmit 事件?还是有其他方法可以检测电子表格中的新回复? 最佳答案 Is it po
我正在使用 TypeForm 并且需要从 javascript 自动填充 utm 字段,除了我无法从脚本创建的 html 以显示在页面上之外,一切正常。我将以下代码嵌入到 clickfunnels 页
我有营销部门要求将 typeform 集成到静态页面中,他们可以快速构建然后嵌入到页面中,我使用 aot angular4,将是来自 CMS 的动态注入(inject),因此意味着需要一种方法来支持任
我在 iframe 中嵌入了一个 typeform 表单,但我不希望它在 iframe 本身内滚动。 这是我的代码: Project
我正在制作一个 Typeform 作为我的产品的订购单,它有很多定制功能,所以 Typeform 非常适合它,但是 Stripe 支付在我的国家不可用。有没有人有将 Paypal 集成到 Typefo
我正在制作自己的个人网页设计网站,但我无法解决这个问题。 它是如何发生的: 当我导航 从任何页面到我的联系页面(Typeform 所在的位置),Typeform 根本没有显示。当我重新加载 联系页面本
如何使用 Typeform 的 ASP.NET Web 表单制作 Webhook 接收器,以及每当有人提交我的表单时如何获取应用程序上的数据。 最佳答案 为了公开端点以接收 POST 请求,我将在 A
如何使用 Typeform 的 ASP.NET Web 表单制作 Webhook 接收器,以及每当有人提交我的表单时如何获取应用程序上的数据。 最佳答案 为了公开端点以接收 POST 请求,我将在 A
我设置了一个 Typeform webhook它运作良好。 现在我正在尝试保护它,但我被困在了 Validate payload from Typeform 中部分。 我将概述的步骤和 Ruby 示例
我有一个 Ionic 应用程序(运行 Angular 4),在一个 View 中我想使用 typeform embed sdk 嵌入一个类型表单.由于某种原因,添加以下代码会导致区域错误: Error
我想将我的 WordPress 网站上的 Typeform 收集的信息发送到我的 Intercom 帐户。 我非常确定要做到这一点,我需要在 Typeform 数据的 Intercom 中创建自定义属
我是一名优秀的程序员,十分优秀!