首页 > 解决方案 > AppAuth 环回身份验证在带有 Chrome 的 macOS 上失败

问题描述

我们正在使用AppAuthmacOS 应用程序来验证 Google 帐户。这已经工作了多年,除了最近 Chrome 已经开始http默认阻止所有连接。AppAuth 中的环回服务器经过硬编码,仅适用于 http 连接。以下问题似乎也没有得到解答:https ://github.com/openid/AppAuth-iOS/issues/624

我们还有哪些其他选项可以https在 macOS 上使用环回服务器进行 OAuth2 身份验证?我们需要环回服务器能够提取 Google 在身份验证后发回的参数。要求用户从 Chrome 切换是不可取的。

标签: macosoauth-2.0loopbackappauth

解决方案


有趣 - 使用环回桌面登录,涉及两个 URL:

  • 桌面应用程序中的 URL,根据 OAuth 标准是 HTTP,因为它在最终用户 PC 上运行。使用 HTTPS 将需要整个用户群来托管 SSL 证书,这是非常不切实际的。通常,环回 URL 是一个值,例如 http://localhost:8000,其中端口号通常在运行时计算。

  • 调用系统浏览器的URL是https://myauthserver/authorize?client_id=xxx&redirect_uri=http://localhost:8000...之类的值,当然应该是HTTPS。

问题诊断

如果您使用标准桌面登录,如果 Google 阻止了这一点,我会感到非常惊讶,因为它已在他们的Native Apps Page上引用多年。

您确定不是其他原因吗?一种可能性可能是系统浏览器中缺少用户手势。问题是否一致,在这些情况下是否有任何差异:

  • 登录前将 Safari 浏览器设为默认浏览器
  • 登录前将 Chrome 浏览器设为默认浏览器
  • 登录前将 Chrome 浏览器设为默认浏览器并清除浏览器缓存

让我知道,我也许可以建议一些后续步骤......


推荐阅读