安全 Dialogflow 实现
Security Dialogflow fulfillment
我为我的 Dialogflow 机器人编写了一个简单的 HTTPS 服务器。在我的代码中,我只信任 req
对象,如下所示:
快递路由:
app.post('/', Route);
Express调用的函数:
function Route(req, res) {
if (req.body.status.errorType !== "success") {
return ;
}
// do something really awesome here
}
我认为这不是个好主意。我应该检查请求的来源。你怎么看?也许我应该使用 basic-auth 模块或其他东西,但我不知道如何确保 req
对象已被 Dialogflow 处理。我该怎么做?
我找到了我自己问题的答案。 Dialogflow 让我们定义一些在本文档页面顶部解释的身份验证变量:
https://dialogflow.com/docs/fulfillment
所以只需探索 req.headers.authorization,您就会发现一个身份验证变量,正如 HTTP 协议所描述的那样:
https://en.wikipedia.org/wiki/Basic_access_authentication
(连接这三个东西:
- 您的 dialogflow 用户名
- 字符':'
- 您的 dialogflow 密码
并将其编码为 base64)
非常棒!
我为我的 Dialogflow 机器人编写了一个简单的 HTTPS 服务器。在我的代码中,我只信任 req
对象,如下所示:
快递路由:
app.post('/', Route);
Express调用的函数:
function Route(req, res) {
if (req.body.status.errorType !== "success") {
return ;
}
// do something really awesome here
}
我认为这不是个好主意。我应该检查请求的来源。你怎么看?也许我应该使用 basic-auth 模块或其他东西,但我不知道如何确保 req
对象已被 Dialogflow 处理。我该怎么做?
我找到了我自己问题的答案。 Dialogflow 让我们定义一些在本文档页面顶部解释的身份验证变量: https://dialogflow.com/docs/fulfillment
所以只需探索 req.headers.authorization,您就会发现一个身份验证变量,正如 HTTP 协议所描述的那样: https://en.wikipedia.org/wiki/Basic_access_authentication
(连接这三个东西:
- 您的 dialogflow 用户名
- 字符':'
- 您的 dialogflow 密码
并将其编码为 base64)
非常棒!