Ionic2中的Auth0使得Uncaught无法在回调

时间:2017-02-20 12:13:30

标签: angular ionic2 auth0

我正在尝试使用

让Auth0在浏览器中工作
  

离子运行浏览器

我遵循了Auth0的指南。我正在使用

  

auth0-7.6.1.min.js

     

锁定/ 10.10.2 / lock.min.js

版本。导航到谷歌登录页面,但回调失败,空白屏幕。通过回电我的意思是加载

  

https://n00b.au.auth0.com/login/callback?state=blahblahblah ...

网址。它使用引发exeption的JavaScript加载白色html

  

没有找到中继帧

在这些代码行中

     onOpen: function(cb) {
        var o = "*";
        var msgTarget = isIE ? findRelay() : window.opener;
        if (!msgTarget) throw "can't find relay frame";
显然,一个全局的window.opener属性应该存在。 知道整个URL由Auth0提供,我无法找到解决问题的方法。

我已经检查了Auth0中的日志,从他们的角度来看它都是绿色的并显示成功登录。

任何想法为什么会失败?

更新:在iPhone和iOS模拟器上测试,两者都只显示空白屏幕。下载了示例Auth0项目,没有任何修改就有这个问题。我的猜测是它与Cordova的InApp Browser插件有关,在一个新的safari窗口中打开登录页面

2 个答案:

答案 0 :(得分:1)

我目前遇到的问题是在safari浏览器中打开注册链接而不是在InAppBrowser中打开注册链接。这可能会打破回调,因为它会让你完全将应用程序切换到Safari。

我做了一个临时解决方法,因此在InAppBrowser中打开了注册链接,请参阅=> App rejected by Apple because Auth0 signUpLink doesn’t open in Cordova InAppBrowser but in system browser (Safari)

您可以将此应用于您的登录链接,以便在InAppBrowser中打开它们。

答案 1 :(得分:1)

只是想确保您知道使用window.open(url)导航到该页面时会自动设置window.opener。

请参阅http://developer.mozilla.org/en-US/docs/Web/API/Window/opener

评论后更新:

尝试使用离子库上方的new (std::addressof(u.value)) T。在开始auth0登录流程之前,请执行

<script>window.orgopen = window.open;</script>

之后重置:window.ionicopen = window.open; window.open = window.orgopen; ;

如果只是一个黑客攻击,这至少可以从一个未知的方程式。