将凭据传入和传出 Dialogflow 的最佳方式是什么

What is the best way to pass credentials to and from Dialogflow

我可能在文档中完全遗漏了这一点,但我正在寻找在 Dialogflow 之间传递身份验证的示例。

我找到的 Dialogflow 示例对所有用户开放,但我希望 Dialogflow 交互登录到特定的经过身份验证的用户。我设置了 Google Cloud Identity 和 Firestore Auth,但我找不到很好的示例来说明如何在对 Firestore 数据库的请求中通过 Dialogflow 安全地移动该身份验证信息。我在后端 webhooks 上使用 NodeJS。

没有 straight-forward 选项来验证 Dialogflow 实现的用户。处理如何传递凭据和 webhook 连接的建议如下:

  1. end-user 向您的服务器进行身份验证
  2. 服务器在 Dialogflow 中为此会话创建一个新会话(或验证当前会话)
  3. 您的服务器使用 detectIntent 请求中 QueryParameters 对象中的 payload 字段来传递必要的信息以在执行期间验证用户
  4. 为您的 webhook 配置 mTLS 以创建安全连接
  5. 使用 webhook 请求中的 payload 数据对用户进行身份验证

编辑

使用 Dialogflow-Messenger 时,您无法直接访问 Dialogflow API;但是,对于第 3 步,您仍然可以通过 user-id HTML customization.

将值传递给 queryParams.payload

下面是如何动态设置的示例:

const dfMessenger = document.querySelector('df-messenger');
dfMessenger.setAttribute("user-id", YOUR_USER); // Sent to Dialogflow API through queryParams.payload