如何隐藏直接线密码并在BotFramwork Node.js网络聊天中传递令牌

时间:2018-02-09 06:06:35

标签: node.js botframework direct-line-botframework

我是node.js的新手。 我在我的服务器上托管了下面的Webchat版本,并根据我的需要修改了直线键和语音API密钥。

https://github.com/Microsoft/BotFramework-WebChat/tree/master/samples/speech

这里的问题是,目前,我已经在下面的代码中硬编码了密钥,而不是我想要生成直接线令牌并传递它。

BotChat.App({
        bot: bot,
        locale: params['locale'],
        resize: 'detect',
        speechOptions: speechOptions,
        user: user,
        directLine: {
          secret: 'my secret goes here',
          webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
        }
}, document.getElementById('BotChatGoesHere'));

如何实现这一目标?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您需要实现令牌刷新机制

  

curl -X POST \
  https://directline.botframework.com/v3/directline/tokens/generate \
  -H'授权:不记名direct_line_secret'\
  -H'缓存控制:无缓存'\ -H'邮递员令牌:596bb603-b6f6-4802-c868-bb2055e7cd44'

您将获得如下所示的响应

您可以将令牌反馈到直接应用程序

  

{       “ conversationId”:“ 5pCw0I1VZxD64AZmNR624I”,       “令牌”:“ lqBRp7neCNM.dAA.NQBwAEMAd.DtSAr-V81AE.8WGDZ-O0H4E.CT4ZIuIqHR1AvN8Byb0ewzF4eE”,       “ expires_in”:1800}

Refer Here了解更多

答案 1 :(得分:-1)

您也可以使用npm的dotenv模块。

这允许您“隐藏”您的密钥,看起来像这样:

BotChat.App({
    bot: bot,
    locale: params['locale'],
    resize: 'detect',
    speechOptions: speechOptions,
    user: user,
    directLine: {
      secret: process.env.DIRECT_LINE_SECRET,
      webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
    }
}, document.getElementById('BotChatGoesHere'));

希望有所帮助!