botframework - 将刷新 token 存储在 cookie 中

标签 botframework direct-line-botframework

我正在通过调用 DirectLine Api (POST/v3/directline/tokens/generate) 获得的 token 来初始化聊天。我将此 token 存储在 cookie 中并使用它来恢复对话。 我的问题是直线30分钟后自动刷新 token ,我没有找到保存新 token 的方法。 有谁知道我如何保存新 token ?

提前致谢

最佳答案

订阅 DirectLine 的 conectionStatus 可以监听 ConnectionStatus.Online,它在 ConnectionStatus.ExpiredToken 之后触发。然后,更新cookie:

directLine.connectionStatus$.subscribe(connectionStatus => {
    if (connectionStatus === ConnectionStatus.Online) {
      setTokenCookie(this.token);
    }
  });

引用DirectLineJs源码: https://github.com/Microsoft/BotFramework-DirectLineJS/blob/master/src/directLine.ts#L473

 public reconnect(conversation: Conversation) {
        this.token = conversation.token;
        this.streamUrl = conversation.streamUrl;
        if (this.connectionStatus$.getValue() === ConnectionStatus.ExpiredToken)
            this.connectionStatus$.next(ConnectionStatus.Online);
    }

关于botframework - 将刷新 token 存储在 cookie 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516124/

相关文章:

azure - MS ChatBot - ClientConnector 未经授权的异常

azure - Microsoft Bot Framework 和 Slack - 测试时始终返回 Forbidden

botframework - Microsoft Bot Framework - 使用 ngrok 在本地构建和调试客户端

javascript - 在 DNN 站点中嵌入机器人

azure - 如何将 Xamarin 表单应用与 Azure Directline 语音机器人集成?

c# - IActivityLogger 不记录 PromptDialog.Choice 文本

azure - Bot Framework 迁移到 Azure 是否意味着 Bot Framework 和 Skype for Business channel 的预览状态结束?

azure - 如何在Azure机器人的输出事件中设置Speak字段?

c# - 通过 API Microsoft Bot Framework 返回货币汇率

c# - Azure Bot Framework 自定义状态 cosmosdb 数据为空