如何解决如何更改 OAuthCard 的“登录”按钮的行为以仅打开 URL 而无需重定向
我将 Webchat(来自 Microsoft Bot Framework)嵌入另一个使用引擎盖下的浏览器的应用程序中运行。
在尝试向机器人添加身份验证时,我意识到 OAuthCard 的登录按钮不起作用,因为它试图打开一个空白窗口 (about:blank),用于将用户重定向到登录页面身份提供者。在嵌入式上下文中,操作系统不知道如何处理 about:blank 调用。见下图。
我正在关注这个例子,它实际上是在浏览器上运行的:
Add authentication to a bot
Bot authentication example
我想知道是否有办法改变 OAuthCard 的“登录”按钮的行为,直接打开登录 URI,而不使用 about:blank 和重定向技术。
解决方法
在发现可以在 Webchat 进行渲染之前将 OAuthCard 的按钮类型从“登录”更改为“openUrl”后,我能够使其工作。
Microsoft Teams 似乎存在类似的问题。我在这里找到了线索:
https://github.com/microsoft/botframework-sdk/issues/4768
根据Webchat参考,可以交叉和改变活动:
https://github.com/microsoft/BotFramework-WebChat/blob/master/docs/API.md#web-chat-api-reference
这是解决方案,这更像是一种黑客攻击。我希望将来可以配置:
// Change the button type in the OAuthCard to the type of OpenUrl
const store = window.WebChat.createStore( {},( { dispatch } ) => next => action => {
if (action.type == "DIRECT_LINE/QUEUE_INCOMING_ACTIVITY" &&
action.payload.activity.hasOwnProperty("attachments") &&
action.payload.activity.attachments[0].contentType === "application/vnd.microsoft.card.oauth") {
action.payload.activity.attachments[0].content.buttons[0].type = "openUrl";
}
return next( action );
});
// Pass the store to the webchat
window.WebChat.renderWebChat({
...,store
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。