Chrome 中的单次授权

Maud Nalpas
Maud Nalpas

Chrome 116 开始,我们将逐步在权限提示中添加这次允许选项。我们的目标是让用户能够更轻松地按照自己的方式使用强大的 Web 功能。这次允许功能最初将在桌面设备上针对一些最常见的权限(地理位置信息、相机和麦克风)提供。其他功能的权限提示和移动网络上的权限提示目前保持不变,但将来可能会发生变化。

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

权限的新用户体验

Chrome 116 之前的权限用户体验

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

系统会向用户显示三个选项:

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

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

Chrome 116 中的新权限用户体验

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

系统会向用户显示四个选项:

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

当用户选择这次允许时,所授予的权限是临时的,也称为单次授权。其时长仅限于与 Web 应用的当前持续互动。

一次性权限可像其他权限一样通过网站控件网站设置进行管理。

“这次允许”的用户好处和用户体验设计

仅这次访问时允许可让用户:

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

在其他浏览器中使用单次授权

在网络上,许多浏览器(包括 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 不允许在后台获取地理位置信息,因此地理位置信息访问权限会立即暂停,但一次性授予的权限仍有效。如果用户在 5 分钟内返回 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. 点击 Geolocation 按钮。
  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 审核本文。