Web Google Auth - 403 的解决方法:disallowed_useragent 存在吗?

osd*_*iab 24 authentication google-authentication webview google-oauth

StackOverflow 上有很多关于此问题的帖子,但没有一个为 Web 应用程序提供解决方法,以便在嵌入式浏览器(如 iOS 上的 Facebook/Facebook Messenger)中通过 Google Web Auth 登录服务;但我发现 Pinterest 的网络登录与 Google 按钮似乎可以正常工作,所以我想知道是否有人知道如何让它工作。

几年前,Google 禁止从 webview 登录 Google , Auth0 也发表了一篇有关解决方法的博客文章,但这一切似乎都集中在本机应用程序上,而不是提供 Google 作为登录选项的 Web 应用程序。

但我公司的应用程序是一个网络应用程序,我们希望当有人在 Facebook Messenger/Facebook 帖子上分享我们网站的链接时,用户可以使用 Google 登录,即使他们没有弹出本机 Safari 浏览器。根据上述文档,这似乎是不可能的 - 但实际上我发现 Pinterest 的“使用 Google 登录”按钮确实有效!所以看来有一种方法可以让 Google 登录正常工作(不确定他们是否与 Google 达成了特殊协议,或者他们是否正在做我们/Auth0 也可以做的事情)。

重现步骤:

  1. 在 iOS 中打开 Facebook Messenger(这应该也适用于 Facebook,但这说明了问题)
  2. 向自己发送一条包含 URL 的消息https://community.auth0.com
  3. 单击 Auth0 社区论坛的链接
  4. 点击登录
  5. 点击使用 Google 登录
  6. 您会看到 403: disallowed_useragent 错误。

为了证明似乎确实有一种方法可以在野外完成此操作:

  1. 确保您的手机未安装 Pinterest(否则您的手机将在本机应用程序中打开它)。
  2. 在 iOS 中打开 Facebook Messenger
  3. 向自己发送一条包含 URL 的消息https://pinterest.com
  4. 单击 Pinterest 链接
  5. 点击“使用谷歌登录”
  6. 不知何故,当 Pinterest 这样做时它不会出错!

有人知道这里发生了什么事吗?

这个问题已交叉发布到 Auth0 的支持社区论坛,因为我的团队通过 Auth0 实现 Google Auth,但它似乎通常与 Auth0 无关。

编辑:查看我的网站与 Pinterest 的 Google OAuth 端点 URL 的更多详细信息:

看看我的网站使用的 Google oauth URL 与 Pinterest 的,我发现了一些差异:

  1. 我的去https://accounts.google.com/o/oauth2/auth,他们的去https://accounts.google.com/o/oauth2/auth/identifier
  2. 他们有一些我没有的额外查询参数:
["openid.realm", ""]
["ss_domain", "https://www.pinterest.com"]
["fetch_basic_profile", "true"]
["gsiwebsdk", "2"]
["flowName", "GeneralOAuthFlow"]
Run Code Online (Sandbox Code Playgroud)
  1. response_type他们的的值不同permission id_token,我的是code

但不确定会产生什么影响。

编辑:几个月前的 StackOverflow 帖子中也有同样的问题,但没有任何活动,而4 年前的这篇帖子却声称没有办法 - 这似乎不是真的,因为 Pinterest 能够实现这一目标!与此同时,Spotify 和 StackOverflow 也因此错误而失败。也许这是内部交易...

小智 1

如果你在android/iOS中使用webview小部件,你可以简单地修改UserAgent来达到目标​​(当指定浏览器UserAgent时似乎可以工作)

webview.getSettings().userAgentString="Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Mobile Safari/537.36"
Run Code Online (Sandbox Code Playgroud)