带有Edge和IE的Office Dialog API的问题

时间:2019-02-20 22:56:59

标签: office-js outlook-web-addins

我在我的React + Typescript Outlook加载项中使用Dialog API和Office.context.ui.displayDialogAsync()来实现特殊的登录流程。用户需要首先通过Office 365进行身份验证,然后我们使用带有内部API的OAuth令牌来使用AzureADFS登录,以获取该加载项从中检索数据的另一个API的其他令牌。在Chrome和Firefox上的Outlook Online以及Outlook桌面上,所有功能都可以很好地工作。但是在Edge和IE中,对话框永远不会关闭,而且我也没有获得身份验证令牌。

注意:我的登录实现基于以下示例: https://github.com/OfficeDev/Office-Add-in-Dialog-API-Simple-Example/blob/master/SimpleDialogSampleWeb/DialogHelper.js

我从这里的外接程序中收集了用于登录过程的代码的粗略提取: https://stackblitz.com/edit/office-js-dialog-api (显然,没有Office主机应用程序就无法运行)

基本流程是:

Edge和IE托管外接程序时,有两个相似但不同的问题:

1)边缘:在Office.context.ui.displayDialogAsync 未命中后触发的dialogCallback函数中,将dialogMessageReceivedHandler回调传递给Dialog.addEventHandler。在dialogCallback函数中,“ asyncResult”的值是“成功”的,因此没有错误。 “将您带到组织的登录页面”页面旋转,并且第二个AZADFS页面未加载

2)IE:O365登录页面成功重定向到第二个AZADFS登录页面,因此用户可以输入其AD凭据。但是,在他们提交凭据后,将触发dialogEventReceivedHandler并返回12006-这意味着用户取消了登录,但是肯定不是这种情况-输入/提交/确定等。因此,存在相同的问题:dialogMessageReceivedHandler回调没有被触发。

这是怎么回事? Edge和IE中的Dialog API有什么不兼容的地方吗?还是我的实现存在某种错误,即奇迹般地只能在Chrome和Firefox中使用?

0 个答案:

没有答案
相关问题