由于不存在的嵌入式浏览器,Google 希望阻止 OAuth 登录

nin*_*sky 11 google-oauth google-cloud-platform hotjar

今天我收到了以下来自谷歌的电子邮件:

谨此通知您,从 2021 年 1 月 4 日起,Google 将停止支持从嵌入式浏览器框架登录 Google 帐户。 我们检测到您的一个或多个 OAuth 客户端使用嵌入式浏览器框架,这些客户端可能会在 2021 年 1 月 4 日或之后被屏蔽。请检查您在以下 Google OAuth 客户端 ID 中使用 Google 帐户授权流程的情况,并在 2021 年 1 月 4 日之前进行任何必要的更改:

这很奇怪,因为我的 B2C Web 应用程序既没有加载到嵌入式浏览器中,也没有加载到 Web 视图中。它甚至不是使用嵌入式浏览器或 Web 视图的移动应用程序。根本没有用户可以登录的嵌入式浏览器或 Web 视图。我的 Web 应用程序只是一个简单的公共 B2C“网站”,它做两件事:

  • 用户可以通过 Google OAuth(Google Sign-In for Websites)登录
  • 通过使用离线访问的 OAuth 令牌,通过 cronjob 使用 YouTube 数据 API 自动检索 YouTube 数据

所以我想知道为什么我会收到这封电子邮件。非常感谢您的建议,因为似乎 Google 计划限制/阻止我的 Google API clientID,而且我有点担心网站会中断。

更新 1:

  • 在我的开发环境中,我在本地主机上测试了 Google OneTap 登录半年。也许这可能是原因?
  • 我也在使用 HotJar.com 屏幕录制来优化我的网站。HotJar Javascript 正在动态生成不可见的 html iframe。也许这可能是一个原因?

更新 2:关于此主题
Google 博客文章描述了“浏览器必须启用 JavaScript”和“浏览器必须在用户代理中清楚地标识自己”才能进行 OAuth 登录。

我想知道使用离线访问令牌对 YouTube 数据 API 的服务器端 API 调用是否被视为 OAuth 登录(基本上就是这样)。但是离线访问是针对 API 访问进行的,无需用户交互(浏览器)。所以我认为这应该是问题,但谁知道...

小智 1

我们收到了相同的消息,并且我们也在浏览器中使用 Google-Sign-In with OAuth2。

就像@ninsky一样,我也怀疑它与网络浏览器有关,因为我们使用谷歌建议的带有Javascript的网络流。

我怀疑它可能与“渐进式网络应用程序”(PWA)有关。如果您的网站上有 Service Worker,则您的网站将成为 PWA,并且可以在用户将您的网站“添加书签”到主屏幕时安装。

此外,我们还使用 TWA(可信网络活动)将我们的网站添加到 Google Play 商店。全部由谷歌支持。因此,我们的网站基本上也是一个渐进式 Web 应用程序,现在可以在 Google Play 商店上下载。

但由于一切都在后台使用系统浏览器,因此我们不清楚我们做错了什么。

有任何想法吗?

  • @penguinflip你是对的,在Cordova上你需要通过像https://github.com/EddyVerbruggen/cordova-plugin-googleplus这样的插件使用本机OAuth旧的方法是使用嵌入式浏览器,但这不再起作用了 (2认同)