【问题标题】:cordova-plugin-ms-adal issues with chrome version 83+chrome 83+ 版本的cordova-plugin-ms-adal 问题
【发布时间】:2020-07-14 22:08:48
【问题描述】:

在最新的 google chrome 更新 (83) 之后,我遇到了 cordova-plugin-ms-adal 的一些问题,我认为这些问题来自他们在 chrome webview 上进行的 OOR-CORS 更新。 当我致电app.authContext.acquireTokenAsync(resourceUrl, appId, redirectUrl) 时,承诺永远不会得到解决,我认为 Azure AAD 的响应在某处被阻止。
我没有看到任何与 CORS 相关的错误,我也找不到如何更新我的应用程序以符合 OOR-CORS。
有人遇到同样的问题吗? (任何低于 83 的 chrome 都可以正常工作)。


更新:

令人耳目一新的是 create context 方法,该方法将被调用两次,一次是在我进入页面时,第二次是在我刷新同一页面时。 (这修复了 adal 被阻止的响应)

当我调用 app.authContext.acquireTokenAsync 时,它永远不会收到来自 AD 的任何响应,直到我重新加载第一个页面,之后它将始终按预期工作。

【问题讨论】:

    标签: adal


    【解决方案1】:

    为了确定问题,我建议您查看使用 83 下的 chrome 浏览器进行的网络调用,并将其与 chrome 浏览器 83 进行比较。目的是寻找由于 CORS 返回的响应中的任何差异标头等。这可能会帮助您确定由于未解决的承诺而发生的变化。

    由于控制台中没有显示 CORS 错误,我预计 api 的响应会因 CORS 实现而受到影响。

    另一个建议是使用 adal-for-js (link) 而不是 adal-for-cordava (link),因为后者已被废弃且不再维护。任何可能影响较新浏览器的错误修复都需要您直接修补它,这可能是繁琐的工作,IMO。

    【讨论】:

    • 查看 chrome 83 for webview (dev.chromium.org/Home/loading/oor-cors) 的文档,我没有立即看到任何会影响它的内容,但应该有一些副作用直接可见。
    • 我正在查看该文档,也找不到相关的内容,我将尝试使用 adal for js 而不是 adal for cordova,感谢您的回复 :)
    • 如果这解决了你的问题,你能投票并接受答案吗:-)
    • 它以某种方式解决了它,但是我在重定向 URI 上遇到了一些问题,因为我知道重定向 URI 应该与创建 UserAgentApplication 的位置相匹配,以便关闭登录弹出窗口,否则它们会保持打开状态,并且问题是在设备上它会尝试导航到该重定向 uri,这将使应用程序崩溃。我发现当我刷新应用程序时,cordova 的 adal 再次工作。在我做一个 location.reload(); 之前它不起作用
    • 如果可能的话,你能分享一个有问题的样本吗?我很难理解为什么需要 location.reload 理想情况下不需要它才能工作。
    猜你喜欢
    • 2020-05-10
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2019-06-11
    • 1970-01-01
    相关资源
    最近更新 更多