IOS11 的第三方登录 - GIDSignInButton
Posted
技术标签:
【中文标题】IOS11 的第三方登录 - GIDSignInButton【英文标题】:Third Party Sign in for IOS11 - GIDSignInButton 【发布时间】:2017-12-18 04:49:26 【问题描述】:我正在测试 ios 11 更新并注意到我使用 Google 登录的 Firebase 身份验证不起作用
我收到一个错误
A problem repeatedly occurred on https://accounts.google.com/signin/oauth? client_id nosignup pproval_state=???? passive=????
我可以看到很多关于 Apple 删除部分社交媒体集成的新闻报道 Apple to stop third party login on apps through social media in iOS 11
但我找不到任何针对开发人员的内容,说明我们应该对此做些什么。
谷歌登录网页没有提到任何我能看到的关于 IOS11 Google Sign-In for iOS
Firebase也没有
谁能提供关于这些库在 IOS11 中是否仍然相关的说明,或者提供讨论这些问题的链接。
----- 添加指向 Firebase 示例应用的链接 -----------
Firebase 示例应用也无法登录 Google,我尚未测试所有其他应用 https://github.com/firebase/quickstart-ios/authentication/AuthenticationExampleSwift
【问题讨论】:
我不知道提出这个问题的最佳地点在哪里?我不知道是使用 firebase 框架还是 Google Sign In 框架,尽管后者似乎更有可能。我通过 facebook 应用程序使用 facebook 登录没有问题。值得一提的是,它仍然可以在实际设备上运行。 我已经进一步追踪了它 - 它与您的代码或 Firebase 等无关。如果您在模拟器上打开 Safari,并打开一个私人浏览选项卡,然后转到类似“ docs.google.com”,它将失败并出现同样的错误。所以 Safari 和 Google 的标准帐户登录有些奇怪。 【参考方案1】:确实,Apple 已经取消了对某些 3rd 方社交网站(FB、Flickr、Twitter)的特殊处理,但 Google 从未在该列表中。因此,您的错误不应与此相关。
您正在使用的库依赖于一种被广泛采用的机制来提供应用内非上下文 OAuth 登录。基本上,应用程序会显示一个带有 OAuth 页面的 SFSafariViewController,然后一旦授权完成,它就会打开一个特殊的 URL,该 URL 被转发回应用程序,然后关闭 SFSafariViewController。我知道 Google 和 FB 在他们的 SDK 中肯定会这样做。
在 iOS 11 中,Apple 提供了一种新机制来执行此工作流程。它被称为SFAuthenticationSession。它们并未弃用当前支持的方法,您可能会看到您使用的库迁移到适用于 iOS 11 设备的这种新机制。
您的问题的答案是这些库仍然相关,您应该继续调查您的错误(确保您在 iOS 10 上没有收到错误,显然)
更新
为了回答进一步的问题,我从提供的链接中启动了一个示例项目。我在模拟器上遇到了同样的问题,但是当我在带有 iOS 11 beta 3 的旧 iPhone 6 上运行它时,它运行良好。因此,在运动中,这似乎是一个模拟器错误。一种理论可能是模拟器对某些库的主机操作系统的依赖,因此如果您运行 High Sierra,您可能不会遇到此问题。
我尝试在设置中摆弄各种开关以使页面正确加载但无济于事。看起来行动的过程是:
提交feedback
在设备上测试直到模拟器修复(毕竟这是测试版软件)
更新 #2
模拟器问题似乎在 Xcode 9 beta 4 中得到修复。?
【讨论】:
我登录 IOS 10 没有问题,我会检查我的代码。 我在使用 firebase 快速启动示例身份验证应用程序时遇到了同样的问题 - 这适用于 IOS 11,但在 IOS 11 中失败。 @RyanHeitner 它在模拟器中失败,但在运行 iOS 11 beta 3 的设备上完美运行 确认这只是模拟器问题 @RyanHeitner Beta 4 似乎解决了这个问题以上是关于IOS11 的第三方登录 - GIDSignInButton的主要内容,如果未能解决你的问题,请参考以下文章