报错

"Browser or app may not be secure. Try using a different browser." error with Flutter Firebase Google Login
或者
This browser or app may not be secure“ error when trying to sign in with Google on desktop

背景

在electron上搭建的micro-app微前端子应用实现google auth2功能,我们的架构是electron+micro-app(桌面项目)和react spa(子应用项目)。
由于google auth2的spa限制,我们无法做到auth2认证的接口直接在子应用中调用,因为被google安全拦截了。于是我们在electron桌面端创建了一个新窗体,再在这个窗体内创建一个webview创造出浏览器环境,提供给spa认证页面执行,这需要注册应用并在统一同意屏幕那边做配置。

问题描述

在webview中运行的spa同意登录页面中,在重定向google获取授权码code的登录界面时,被限制登录了。

问题分析

经过查阅相关资料google在2020年5月之前就对安全做限制,注册的spa应用会被限制登录。提示为浏览器不安全,因为我们的electron处于node环境中,确实是拥有修改底层的能力的。

参考自[1]:https://support.google.com/accounts/answer/6010255
参考自[2]:https://stackoverflow.com/questions/59480956/browser-or-app-may-not-be-secure-try-using-a-different-browser-error-with-fl

解决办法

通过修改webview的useAgent属性,注入到webview的用户代理环境中,修改内核。如下代码所示:

<webview
                    src={webviewUrl}
                    style={{ flex: 1 }}
                    // useragent={userAgent}
                    useragent={'Chrome'}
                    preload={preloadJs}
                    webpreferences="enableRemoteModule=true,nodeIntegration=true,nativeWindowOpen=yes,contextIsolation=false"
                />

成功后的界面会有所变化,如下图所示:
在这里插入图片描述
或者
在这里插入图片描述

参考自[1]:https://support.google.com/accounts/thread/22873505?msgid=24503570
参考自[2]:https://support.google.com/accounts/thread/22873505/this-browser-or-app-may-not-be-secure-error-when-trying-to-sign-in-with-google-on-desktop-apps?hl=en

Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐