直线 API Microsoft Bot Framework - 在 Javascript 中获取令牌而不公开秘密

Direct Line API Microsoft Bot Framework - Get token without exposing secret publicly in Javascript

我正在使用 Direct line 连接器和 Javascript 在 wordpress 站点(在 Azure 外部托管)上为我的机器人创建自定义聊天 window,并且要开始对话我需要指定 Direct line SECRET或我的机器人应用程序的令牌。

要获得令牌,我必须对 https://directline.botframework.com/v3/directline/tokens/generate 进行 REST 调用并添加到 header "Authorization : Bearer SECRET"。 我不想在我的 javascript 文件中公开该 SECRET,也不想将其作为 URL 参数传递。

我还有哪些其他选择? 如何在不向客户端公开我的机器人 Direct line SECRET 的情况下获取令牌?

不幸的是,没有前端解决方案。提供您的网页后,其所有内容(包括所有脚本文件)都可供请求该页面的任何人仔细检查。隐藏密钥的唯一方法是将服务器用作中间人,并将秘密存储在那里。抱歉粗略的绘图:

如果您的整个项目都是静态页面,那么这意味着需要大量工作来设置服务器。值得庆幸的是,今天启动服务器并 运行 并不像 10 年前那么困难。如果您已经熟悉 JavaScript,那么您将能够快速学习 node.js。然后,您可以使用诸如 express 之类的框架来实现您的服务器,它将为您完成大部分繁重的工作。