Chrome 中的单次授权

Chrome 116 开始,我们将逐步推出一项新功能,在权限提示中添加 仅这次访问时允许 选项。我们的目标是让用户能够按照自己的意愿使用强大的 Web 功能。仅这次访问时允许 选项最初将在桌面设备上提供,适用于一些最常见的权限:地理位置、摄像头和麦克风。目前,其他功能和移动 Web 的权限提示保持不变,但将来可能会发生变化。

如果您是网站所有者,请查看影响和建议,并试用演示

权限的新用户体验

Chrome 116 之前的权限用户体验

权限提示仅显示“屏蔽”和“允许”。
Chrome 116 之前的权限提示。

用户会看到三个选项:

  • 允许:永久允许。
  • 屏蔽:永久屏蔽。
  • 点击 x 按钮:暂时屏蔽。网站稍后可以再次提示用户,最多三次。

可以通过地址栏中的网站控件网站设置 管理权限。

Chrome 116 中的新权限用户体验

包含新的一次性选项的权限提示。
包含新的单次授权选项的权限提示。这是桌面设备上地理位置、摄像头和麦克风的新权限提示。

用户会看到四个选项:

  • 仅这次访问时允许:暂时允许。
  • 每次访问时都允许:永久允许。
  • 不允许:永久屏蔽。
  • 点击 x 按钮:暂时屏蔽。

当用户选择仅这次访问时允许 时,授予的权限是临时的,也称为单次授权。其有效期仅限于当前与 Web 应用的互动。

可以像管理其他权限一样,通过网站控件网站设置 管理单次授权。

“仅这次访问时允许”的用户优势和用户体验设计

仅这次访问时允许 为用户提供了以下优势:

  • 更强的控制力。 Chrome 用户研究表明,用户通常不愿对网站权限做出永久性决定,而是希望先评估授予权限后是否能获得回报。提供“仅这次访问时允许”选项可以满足此需求,并降低允许访问的风险。
  • 更清晰。 明确的仅这次访问时允许每次访问时都允许 选项清楚地表明,其中一个选项是临时的,而另一个选项是永久的。

其他浏览器中的单次授权

在 Web 上,许多浏览器(包括 Safari 和 Firefox)都支持单次授权。如需了解单次授权在您的设备上的运作方式,请访问 https://permission.site/one-time 进行实验。请务必试用地理位置、摄像头和麦克风权限,因为它们可能具有特定的行为。

例如:

  • 在桌面设备上的 Safari 16 中,地理位置默认是单次授权(直到下次导航)。用户可以通过复选框选择将访问权限保留 24 小时。
  • 在桌面设备上的 Firefox 115 中,地理位置、摄像头和麦克风权限默认是单次授权。用户可以通过复选框选择永久访问。

影响和建议

单次授权的影响:

  • 引入单次授权不会影响用户之前永久授予的权限。
  • 用户对权限提示做出决定后,在其访问期间,权限状态为“已授予”或“已拒绝”。单次授权在这方面没有任何区别。
  • 但是,如果用户选择仅这次访问时允许,则在下次访问时会再次看到权限提示。

为了适应单次授权,我们建议网站所有者执行以下操作:

最佳实践

仅这次访问时允许 可能会让用户更愿意授予权限来试用功能,但也可能会降低他们授予永久访问权限的意愿。因此,遵循最佳实践就显得更加重要。

  • 在请求权限之前提供必要的背景信息。向用户说明他们将从功能中受益的原因。
  • 在适当且预期的时刻请求权限。理想情况下,让用户按照自己的节奏表达使用特定功能的意愿。
  • 在用户访问期间,无论用户选择的是单次授权还是永久授权,都提供相同的体验。

如需查看其他指南,请参阅权限用户体验

单次授权的过期时间

默认情况下,所有 Web 权限都绑定到来源,来源可以被视为自己的应用。使用仅这次访问时允许 时,用户会向来源授予单次授权。从本质上讲,当用户在一段时间内停止与该来源进行积极互动时,单次授权就会过期。这意味着,如果用户在不同的标签页中短暂切换到另一个网页,然后返回,网站可以继续使用该功能。

更详细地说,只要满足以下任一条件,单次授权就会过期:

  • 页面已关闭、已离开或已舍弃。这包括关闭 Chrome。
  • 自授予权限以来已过去 16 小时。
  • 用户手动撤消权限(例如,在网站控件 中),或通过企业政策覆盖权限。
  • 页面已在 后台 运行至少 5 分钟,除非该功能允许在后台运行,例如摄像头或麦克风。在这种情况下,只要网站使用该功能,Chrome 就会显示标签栏指示标志,并且在页面停止使用该功能之前不会启动 5 分钟计时器。请注意,16 小时计时器仍在运行。

后台标签页

当浏览器标签页不在前台时,它处于后台状态。 当标签页是未最小化的浏览器窗口中的可见标签页时,它处于前台状态。

在 Chrome 中,某些功能(例如地理位置)只能在前台标签页中运行。不允许在后台标签页中运行。其他功能(例如摄像头和麦克风)则允许在后台标签页中运行。

浏览器窗口的屏幕截图,突出显示了有效的前台标签页和无效的后台标签页。

标签栏指示标志

当标签页处于后台时继续运行的功能具有标签栏指示标志。例如,相机具有标签栏指示标志。

带有红点的标签页。
摄像头访问权限的标签页指示标志是一个红点。

地理位置不需要标签栏指示标志,因为地理位置访问权限会在页面处于后台时立即暂停。

示例

  • 地理位置:用户位于 example.com 并授予单次地理位置访问权限。用户切换到另一个标签页。这会使 example.com 成为后台标签页。地理位置访问权限会立即暂停,因为 Chrome 不允许后台地理位置访问权限,但单次授权仍然有效。如果用户在五分钟内返回 example.com,页面可以恢复地理位置访问权限(并且 5 分钟的过期计时器会重置)。否则,单次授权将过期。
  • 摄像头/麦克风:用户位于 example.com 并授予单次摄像头访问权限。用户切换到另一个标签页。这会使 example.com 成为后台标签页。摄像头访问权限可以继续,因为 Chrome 允许摄像头访问权限在后台继续。只要摄像头在使用中,Chrome 就会一直显示摄像头的标签栏指示标志,以便用户了解情况。在某个时间点,网站可能会决定停止摄像头访问权限,在这种情况下,5 分钟的过期计时器会启动。在 5 分钟内没有摄像头访问权限后,单次授权将过期。

Permissions API

如需查询 API 权限的状态,您可以使用 Permissions API

  • 如果用户选择仅这次访问时允许,Permission API 状态将设置为 granted。这意味着,未过期的单次授权和永久授权无法区分,并且具有相同的状态:granted
  • 单次授权过期后,状态将重新设置为 prompt
  • 如需观察单次授权的过期情况,请注册 PermissionStatus.onchange 事件处理脚本。

演示

  1. 在桌面设备上打开 Chrome 116 或更高版本。
  2. 打开 chrome://flags/#one-time-permission 并选择启用 。重新启动 Chrome。如果您的 Chrome 浏览器尚未推出单次授权,此步骤会强制启用单次授权。
  3. 打开 https://permission.site/one-time
  4. 点击地理位置 按钮。
  5. 观察新的单次授权提示。
  6. 选择仅这次访问时允许
  7. 打开网站控件 。观察到您可以管理单次授权。
  8. 关闭 https://permission.site/one-time 的标签页。确保没有打开该来源的其他标签页。
  9. 在新标签页中打开 https://permission.site/one-time
  10. 打开网站控件 。前往网站设置
  11. 观察到地理位置权限现在已恢复到初始状态:询问(默认)

结论和反馈

单次授权为用户提供了更多选择,而 Chrome 的新权限界面为用户带来了更一致的权限用户体验,适用于各种浏览器和平台。

如果您在使用单次授权时遇到任何问题,请为权限提示提交新的 crbug 问题

致谢

感谢 Rachel Andrew、Serena Chen、Balazs Engedy、Marian Harbach、Florian Jacky 和 Thomas Steiner 审阅本文。