Web Bluetooth API与Passkeys - Corbado

作者:API传播员 · 2025-12-14 · 阅读时间:6分钟

了解 Web Bluetooth API 对密钥的作用,以及蓝牙可用性检测如何通过 WebAuthn 增强跨设备身份验证(CDA)。本文将深入探讨 Web Bluetooth API 的功能、优势及其在密钥验证中的重要性。


简介:Web Bluetooth API 与密钥

通过使 Web 应用程序能够直接与蓝牙设备交互,Web Bluetooth API 在确保安全高效的身份验证过程(尤其是跨设备身份验证,CDA)方面发挥着重要作用。

本文将解答以下核心问题:

  1. 什么是 Web 蓝牙 API?
  2. 如何使用 Web Bluetooth API?
  3. 为什么蓝牙检测对密钥很重要?

什么是 Web 蓝牙 API?

Web 蓝牙 API 是一个 JavaScript 接口,允许 Web 应用程序访问蓝牙设备并与之通信。作为 HTML5 标准的一部分,它得到了 Chrome、Edge 和 Opera 等浏览器的支持。通过该 API,Web 应用程序可以:

  • 扫描附近的蓝牙低功耗(BLE)设备。
  • 请求配对权限。
  • 使用通用属性配置文件(GATT)协议交换数据。

Web 蓝牙 API 的三个关键功能

  • getAvailability():返回一个 Promise,解析为布尔值,指示用户代理是否支持蓝牙功能。
  • getDevices():返回一个 Promise,解析为允许源访问的 BluetoothDevices 数组,包括超出范围或断电的设备。
  • requestDevice():返回一个带有指定选项的 BluetoothDevice 对象的 Promise,用于请求设备配对。

Web 蓝牙 API 的特性

  • 仅限 HTTPS:Web Bluetooth API 仅在安全上下文(HTTPS)中可用,确保数据传输的安全性。
  • 需要用户手势:设备发现必须由用户手势触发(如触摸或点击),以增强安全性。

如何使用 Web Bluetooth API?

要检查 Web Bluetooth API 是否支持,可以通过以下代码实现:

if (navigator.bluetooth) {
  console.log("Web Bluetooth API is supported!");
} else {
  console.log("Web Bluetooth API is not supported.");
}

通过调用 getAvailability()getDevices()requestDevice() 等函数,可以检查蓝牙支持、列出可访问设备并请求设备配对。


Web 蓝牙 API 的优势

Web Bluetooth API 为开发人员和用户提供了以下优势:

  • 交互性:无需本地应用程序或插件,直接与蓝牙设备交互。
  • 增强用户体验:支持访问心率监测器、音乐控制等无线设备功能。
  • 安全与隐私:用户必须授予设备访问权限,且可随时撤销。

Web 蓝牙 API 的局限性

尽管 Web Bluetooth API 功能强大,但仍存在一些局限性:

  • 浏览器支持不足:Safari 和 Firefox 不支持该 API,影响了部分用户体验。
  • 设备功能依赖:仅适用于兼容的 BLE 设备,且可能因电池电量低或超出范围而无法被发现。
  • 规范演进:作为规范草案,API 可能发生变化,开发者需关注最新进展。
  • 假阳性:在实际不可用时,API 可能错误地指示蓝牙支持。
  • 用户控制的可用性:用户和浏览器可以禁用蓝牙权限,导致 getAvailability() 返回 false。

为什么蓝牙检测对密钥很重要?

通过二维码和蓝牙实现跨设备身份验证(CDA)

密钥的一个创新功能是跨设备身份验证(CDA),允许用户通过二维码和蓝牙在一台设备(如台式机或笔记本电脑)上使用移动设备进行身份验证。这种方法增强了安全性和便利性,提供了无缝的用户体验。

蓝牙的可用性对 CDA 用户体验的影响

并非所有设备都支持蓝牙,或者蓝牙可能被用户关闭。对于依赖密钥的服务方,检测蓝牙可用性至关重要,以决定是否可以使用 CDA 或需要其他回退身份验证方法。

不同浏览器对蓝牙支持的影响

  • Safari:大多数 macOS 和 iOS 设备内置蓝牙功能,即使蓝牙不可用,用户仍可通过其他方式完成身份验证。
  • Firefox:由于不支持 Web 蓝牙 API,可能对用户体验造成更大影响。

Windows 和 macOS 的蓝牙支持情况

  • Windows 10 和 11:虽然蓝牙不是强制要求,但大多数现代设备都支持蓝牙功能。然而,用户可能会关闭蓝牙,影响 CDA 的实现。
  • macOS:几乎所有现代 macOS 设备都支持蓝牙,并可直接访问存储在 iCloud 钥匙串中的密钥。

结论:用于密钥的 Web 蓝牙 API

Web Bluetooth API 是一个强大的工具,通过蓝牙功能增强密钥验证的安全性和用户体验。然而,开发者需要克服其局限性,并设计强大的回退机制,以确保在不同浏览器和设备上的无缝体验。

通过本文,我们解答了以下核心问题:

  1. 什么是 Web 蓝牙 API?

    它是一个 JavaScript 接口,允许 Web 应用程序访问蓝牙设备并与之通信。

  2. 如何使用 Web 蓝牙 API?

    调用 getAvailability()getDevices()requestDevice() 等函数即可实现蓝牙功能的检测和设备交互。

  3. 为什么蓝牙检测对密钥很重要?

    蓝牙检测对于实现跨设备身份验证(CDA)至关重要,可确保在蓝牙不可用时提供回退方案。

通过理解和利用 Web Bluetooth API,开发者可以构建更安全、便捷的身份验证解决方案,为用户提供卓越的体验。

原文链接: https://www.corbado.com/blog/web-bluetooth-api-passkeys