我正在通过调用DirectLine Api(POST / v3 / directline / tokens / generate)获得的令牌初始化聊天。我将此令牌存储在cookie中,并使用它来恢复对话。 我的问题是,直线在30分钟后会自动刷新令牌,但我找不到保存新令牌的方法。 有谁知道我该如何保存新令牌?
预先感谢
答案 0 :(得分:1)
订阅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);
}