新浏览器窗口中的AngularJS第三方授权

时间:2015-12-10 13:27:40

标签: angularjs oauth window authorization

我在使用AngularJS时遇到一些困难并打开一个新窗口(window.open('URL'))

考虑一下这个场景,我希望我的网络应用程序上的客户端通过Facebook,Stripe等第三方服务进行身份验证。

我的网络应用程序内置在AngularJS和bootstrap中。 点击“添加帐户”按钮,我想打开一个带有相应网址的新窗口。这里的一切都有效。

但是当我尝试从父网络应用程序访问窗口对象时,它会出错:Blocked a frame with origin "http://localhost" from accessing a cross-origin frame

我需要从父级访问子窗口URL以检测URL更改,我还需要访问子窗口的内容。

所以整个工作流程都是

  1. 点击我的网络应用中的“添加帐户”
  2. 将打开一个新窗口,该窗口将命中我的服务器上的URL
  3. 然后调用条带验证URL
  4. 用户使用条带凭据登录
  5. 成功登录后,Stripe auth将回调重定向到我的服务器
  6. 然后发送ACK =成功
  7. 然后我从我的网络应用程序(父母)
  8. 读取了ACK
  9. 收到ACK并检查后,关闭已打开的新窗口
  10. 请帮助!!

1 个答案:

答案 0 :(得分:0)

一种方法,

您可以拥有一个中间页面,用于打开服务器上的URL。在使用第三方页面进行身份验证后,服务器URL将返回标签#success或#error。中间页面再次加载并查找主题标签并调用开启窗口。