独立模式下的渐进式Web应用程序(PWA)OAuth错误

时间:2017-11-05 14:22:54

标签: google-chrome service-worker create-react-app progressive-web-apps sw-precache

我将使用Create React App构建的PWA(测试应用)保存到主屏幕后,使用chrome和 iOS android 上以standalone模式启动应用使用safari。然后在应用中我启动了Firebase方法signInWithPopup(GoogleProvider)设备会询问我是否要使用Test App或设备上安装的其他浏览器(chromefirefox)打开操作。如果我选择使用我的Test App打开,则会打开弹出窗口,然后选择正确的Google帐户。

错误:在选择Google帐户后,弹出窗口关闭,而不会重定向回Test App

如果我改为使用signInWithPopup(GoogleProvider)浏览器而不是我的chrome打开Firebase方法Test App,则会打开弹出窗口以选择Google帐户,在我选择Google帐户后,弹出窗口会关闭并重定向暂时回到Test App然后

错误:会返回chrome标签,要求在显示加载指示符时选择Google帐户,然后挂起。

没有出现控制台错误或警告。

注1:如果我使用Windows 10 x64将应用添加到Version 64.0.3259.0 (Official Build) canary (64-bit)计算机上的主屏幕并且启动时,也会出现弹出未关闭并保持加载的错误独立窗口。

注2: signInWithPopup(Facebookprovider)signInWithPopup(Twitterprovider) 也会出现错误。如果我从主屏幕卸载应用并纯粹在浏览器中启动,则OAuth流程中的签名工作正常很好。

注3:在进一步排查后,当OAuth弹出窗口中需要用户输入时,似乎更具体地发生错误。 即,例如,如果用户之前通过Facebook授予Test App权限,则流程正常,弹出窗口关闭。此外,如果只检测到一个google帐户并且之前已经提供了应用OAuth权限,那么弹出窗口就可以正常工作。但如果设备上存在多个Google帐户,则用户必须输入选择哪个帐户才能通过 - > 登录,这会再次导致前面提到的错误。使用Twitter OAuth时,错误每次都会发生,因为twitter弹出窗口要求用户每次都选择Authorize App

更新:我认为这可能与谷歌浏览器最近从Webview对OAuth的更改有关。

Windows机器上的错误

GIf :注意即使在授权应用程序后,twitter身份验证的弹出窗口也永远不会关闭,谷歌和脸谱OAuth也会出现同样的情况。

enter image description here

2 个答案:

答案 0 :(得分:0)

你可以在app“manifest:standalone”的清单中坚持下去,然后像这样检测启动模式

Per_Mnd = ResLegeSheet.Range("F41:AD41")

答案 1 :(得分:0)

好消息,已在Chrome Canary中修复 https://bugs.chromium.org/p/chromium/issues/detail?id=771418#c84