将刷新令牌存储在 cookie 中
Store refresh token in a cookie
我正在通过调用 DirectLine Api (POST/v3/directline/tokens/generate) 获得的令牌初始化聊天。我将此令牌存储在 cookie 中并使用它来恢复对话。
我的问题是直连30分钟后自动刷新token,没找到保存新token的方法。
有谁知道如何保存新令牌?
提前致谢
订阅 DirectLine 的 conectionStatus 可以监听 ConnectionStatus.Online,它在 [=24 之后触发=]。然后,更新 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);
}
我正在通过调用 DirectLine Api (POST/v3/directline/tokens/generate) 获得的令牌初始化聊天。我将此令牌存储在 cookie 中并使用它来恢复对话。 我的问题是直连30分钟后自动刷新token,没找到保存新token的方法。 有谁知道如何保存新令牌?
提前致谢
订阅 DirectLine 的 conectionStatus 可以监听 ConnectionStatus.Online,它在 [=24 之后触发=]。然后,更新 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);
}