gpt4 book ai didi

firebase - 安全的 Firebase 网络钩子(Hook)

转载 作者:行者123 更新时间:2023-12-04 10:39:23 26 4
gpt4 key购买 nike

我必须创建一个从 typeform 到 firebase 的 webhook。我将创建一个云函数来监听从 typeform 发送的事件。 typeform 由第三方管理。

我唯一的问题是 webhook 的授权部分。我了解到(通过阅读不同的帖子)任何人都可以与云功能 URL“交谈”。但我想在 typeform 和 firebase 之间进行安全且专有的通信。

有什么提示吗?

谢谢你的时间。

最佳答案

您可以明确地将 Typeform webhook 连接到 Cloud 函数并将数据推送到 Firebase 存储。
除了 Frank 指出的身份验证之外,Typeform 还提供了签名机制来确保请求来自 Typeform webhook。
Typeform 允许您定义一个 secret 来签署 webhook 有效负载。
当您在云功能中收到有效负载时,您首先验证它是否签名正确,如果不是,则表示它不是来自 Typeform,因此,您不应该处理它。
以下是验证 webhook 签名的示例:

app.post('/typeform/webhook', async (request, response) => {
console.log('~> webhook received');
// security check, let's make sure request comes from typeform
const signature = request.headers['typeform-signature']
const isValid = verifySignature(signature, request.body.toString())
if (!isValid) {
throw new Error('Webhook signature is not valid, someone is faking this!');
}

//valid signature let's do something with data received
})
这是 verifySignature功能
const crypto = require('crypto')
const verifySignature = function(receivedSignature, payload){
const hash = crypto
.createHmac('sha256', webhookSecret)
.update(payload)
.digest('base64')
return receivedSignature === `sha256=${hash}`
}
Typeform documentation上有更多详细信息.
希望能帮助到你 :)

关于firebase - 安全的 Firebase 网络钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com