我目前正在尝试在一个团队消息扩展中实现一个 *oauth流 *。我使用ASP.NET,并且我设法通过使用团队推荐的登录卡来使登录过程工作。
ComposeExtension = new MessagingExtensionResult
{
Type = "auth",
SuggestedActions = new MessagingExtensionSuggestedAction
{
Actions = new List<CardAction>
{
new CardAction
{
Type = ActionTypes.OpenUrl,
Value = authUrl,
Title = "OAuth"
}
}
}
}
这张卡片有一个按钮,可以打开一个特定的弹出窗口(团队网络视图),我可以将其重新定位到第三方网站的oauth身份验证页面。
所有这些都进行得很顺利,但当用户尝试注销时,在我的情况下,仅恢复从服务器获得的令牌是不够的,我还需要将用户导航到第三方站点的/forcelogout子页面,该页面与我在登录过程中使用的页面完全相同。以确保删除与上一个登录会话相关的cookie。通过此操作,我可以防止在用户下次使用我的消息传递扩展尝试登录时自动填写和提交登录表单。
我的问题是我找不到任何方法从消息扩展打开那个确切的web视图 (这个问题只发生在Teams桌面客户端,因为Teams的web版本使用浏览器选项卡而不是web视图和iframe).我尝试使用任务模块、对话框模块、自适应卡,但是它们都不能打开那个特定的web视图,它有登录表单的cookie。
你有什么办法吗?
1条答案
按热度按时间mwyxok5s1#
身份验证提供程序可以接收一个可选参数,通过忽略cookie始终提示auth-form。使用这种方式,用户注销时无需打开任何webview。