我正在通过调用 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/