标准Dialogflow下能否在WebhookResponse传递auth token到webhook请求头
结论
仅使用标准Dialogflow的原生功能、不搭配任何谷歌云服务的前提下,无法实现动态用户级Bearer Token的自动传递。
具体说明
- 标准Dialogflow的webhook请求头配置仅支持预先填入静态固定值,没有原生能力根据单个会话、单个用户的上下文内容动态替换Authorization头的令牌参数。
- 如果你不愿意使用谷歌云服务,可以通过额外部署自建中间代理层实现需求,整体流程如下:
- 客户端将用户专属Bearer Token和对话请求一同发送到你的自建代理服务
- 代理服务先将对话内容转发给Dialogflow完成意图识别
- 若Dialogflow返回需要调用webhook的结果,代理服务将当前用户的专属Bearer Token填入请求头后,再转发请求到你的业务服务端
- 业务接口返回响应后,代理再将结果回传给Dialogflow,最终整理后返回给客户端
- 如果你不想额外部署代理服务,也可以采用折中方案:将用户Bearer Token存入Dialogflow的会话上下文参数中,让令牌从webhook的请求体中传递,你的业务服务端改为从请求体而非请求头中提取令牌做鉴权即可,这是仅用Dialogflow原生功能就能实现的唯一替代方案,缺点是不符合常规的Authorization头鉴权规范。
内容的提问来源于stack exchange,提问作者Matthew Gherman
相关产品推荐
相关产品推荐

