macos - AppAuth 环回身份验证在带有 Chrome 的 macOS 上失败
问题描述
我们正在使用AppAuth
macOS 应用程序来验证 Google 帐户。这已经工作了多年,除了最近 Chrome 已经开始http
默认阻止所有连接。AppAuth 中的环回服务器经过硬编码,仅适用于 http 连接。以下问题似乎也没有得到解答:https ://github.com/openid/AppAuth-iOS/issues/624
我们还有哪些其他选项可以https
在 macOS 上使用环回服务器进行 OAuth2 身份验证?我们需要环回服务器能够提取 Google 在身份验证后发回的参数。要求用户从 Chrome 切换是不可取的。
解决方案
有趣 - 使用环回桌面登录,涉及两个 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 浏览器设为默认浏览器并清除浏览器缓存
让我知道,我也许可以建议一些后续步骤......
推荐阅读
- javascript - 如何在 400 错误请求后返回 JSON 数据
- java - Android kotlin / java - 注销:清除共享首选项并在后台停止所有进程
- javascript - RethinkDB 过滤器未找到结果
- view - 如何用 3 个视图拆分 MFC 对话框?
- node.js - 如何使用节点/快递正确服务 Angular 6/7 应用程序?
- javascript - javascript添加的按钮不触发点击事件
- c# - EF Core 未引发 ValidationException
- c++ - C ++中的“双重自由或破坏”错误
- swift - Swift(游乐场):使用未解析的标识符“addAnimaltoZoo”
- java - “isDescendingFrom(组件 a,组件 b)”的 JavaFX 版本