|
发布人:身份和身份验证产品经理 William Denniss
身份团队一直致力于帮助 Google 用户以安全无缝的方式使用他们的 Google 帐户登录第三方应用,以及让用户能够在必要时将其帐户中的特定信息(如日程或联系信息)分享给其他应用。
在后台,这些交互是通过 OAuth 请求进行的,多年以来,Google 支持开发者以多种方式实现与我们之间的 OAuth 流程。为了提高安全性和易用性,我们不久将会终止对其中一种方式的支持。在未来数月中,我们将不再允许使用称为“网络视图”的嵌入式浏览器向 Google 发送 OAuth 请求,如 Android 上的 WebView UI 元素和 iOS 上的 UIWebView/WKWebView 以及 Windows 和 OS X 上的等效项。
使用设备浏览器替代嵌入式网络视图来发送 OAuth 请求可显著提高您的应用的易用性:用户在每台设备上只需登录 Google 帐户一次,从而提高您的应用内登录和授权流程的转化率。某些操作系统上提供的现代化“应用内浏览器标签”模式(如 Android 上的 Chrome 自定义标签页和 iOS 上的 SFSafariViewController)为基于浏览器的 OAuth 流程提供了进一步的用户体验改善。
相比之下,使用嵌入式浏览器发送 OAuth 请求这种过时方法意味着,用户每次都必须登录 Google,而不能利用设备上现有的已登录会话。设备浏览器还能提供更高的安全性,因为应用虽然能够检查和修改网络视图中的内容,却无法对显示在浏览器中的内容进行检查和修改。
为帮助您进行迁移,我们提供下列遵循现代化最佳做法的内容库和示例供您使用:
您还可以阅读我们面向本机应用的基于标准 OAuth 支持的协议级文档,以及有关这一主题的 IETF 现行最佳做法草案。
iOS 平台上 3.0 之前的 Google Sign-In 版本不支持应用内浏览器标签最新行业最佳做法,因此同样会被弃用。如果您使用 Google Sign-In,请更新至最新版本,以获得所有最新的安全性和易用性改进。这一政策暂时尚未取消对 iOS 8 上 WebView 的支持,但我们可能会开始显示通知,鼓励用户升级其设备以提高安全性。
弃用通过网络视图向 Google 发送 OAuth 请求的实施时间表如下:从 2016 年 10 月 20 日开始,我们将阻止新的 OAuth 客户端在具有可行替代方案的平台上使用网络视图,并将分阶段向现有 OAuth 客户端发送面向用户的通知。在 2017 年 4 月 20 日,我们将着手在存在可行替代方案的平台上封锁所有 OAuth 客户端使用网络视图发送的 OAuth 请求。
如果您对迁移有任何疑问,请在 Stack Overflow 上的“google-oauth”标签下发帖提问。
|
|