2017-08-24 63 views
1

我目前正在调试过去开发者完成的一些代码。 我们使用下面的代码来打开一个新窗口来验证用户(oAuth2 Flow)。从excel在线任务窗格访问window.open弹出窗口

变种oAuth2Window = window.open(_embeddedStartUrl, “认证”, “位置= 0,状态= 0,滚动条= 1,可调整大小= 1,高度= 600,宽度= 450”);

在用户登录成功后,它试图访问oAuth2Window一些特性,但我得到:

“访问被拒绝”。

主机名称位于不同的服务器上。

这是目前在任务窗格中的Excel Online中发生的事情。

这是前段时间测试过的,正在工作并投入生产。

过去一周,我看到这个问题发生在本地和生产/生活环境。

这怎么可能以前工作?知道您无法从iframe访问弹出窗口

回答

1

您将无法使用此方法从您的不同客户端应用程序执行此操作。相反,您需要通过对话框API窗口将OAuth工作流程路由。

请参阅此处链接Using the Dialog APIs in an authentication flow(靠近页面底部)。

+0

感谢Stewart的回应。 有没有什么方法可以删除正在添加到URL末尾的“_host_info”? 这会在oAuth2服务器上导致500个API错误。我不能控制的 –

+0

我不这么认为。你也确定额外的查询字符串参数导致500错误?这让我感到不寻常。通常未知或意外的url参数被忽略。 –

+0

我使用Oauth2来授权我的应用程序。我所做的是我打开一个对话框的页面到我的本地应用程序页面之一。从那里我点击一个按钮来调用流程,然后当重定向回来时,我没有被授权,我使用回调函数将我需要的访问令牌发送回任务面板。在哪一点我关闭对话框窗口。 –