Bot Framework - 在 Teams 中完全注销用户

问题描述 投票:0回答:1

我们使用 Bot Framework(版本 4.0)构建了一个 Teams 机器人。该机器人运行良好。

我们想要完成的是在机器人中提供注销/登录功能。要注销,用户需要输入特殊命令(例如“注销”),我们就会注销用户。现在,当用户下次与机器人交互时,我们希望用户通过向他们显示 OAuth 对话框来手动登录。

这是我们为注销用户而编写的代码,它不会引发任何错误:

var userTokenClient = innerDc.Context.TurnState.Get<UserTokenClient>();
await userTokenClient.SignOutUserAsync(innerDc.Context.Activity.From.Id, _connectionName, innerDc.Context.Activity.ChannelId, cancellationToken).ConfigureAwait(false);
await innerDc.Context.SendActivityAsync(MessageFactory.Text("You have been signed out."), cancellationToken);
return await innerDc.CancelAllDialogsAsync(cancellationToken);

但是,当用户发送下一条消息时,Bot 框架会以某种方式自动将它们登录(我猜测登录会话在服务器上终止,但令牌不会从本地缓存中删除)。

我想知道是否有另一种方法可以完全注销用户并删除令牌缓存,以便在下一次对话中向用户显示 OAuth 登录对话框。

有人建议在本地删除 Teams 缓存文件夹,但这也不起作用。

我们甚至尝试了以下代码并得到相同的结果:

await MyOAuthPrompt.SignOutUserAsync(innerDc.Context);
azure botframework microsoft-teams azure-bot-service
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.