Get your free and exclusive 80-page Banking Passkey Report
web bluetooth cover

API Web Bluetooth và Passkeys

Tìm hiểu vai trò của API Web Bluetooth đối với passkey! Khám phá cách việc phát hiện tính khả dụng của Bluetooth giúp cải thiện Xác thực chéo thiết bị (CDA) với WebAuthn.

Vincent Delitz

Vincent

Created: August 8, 2025

Updated: August 8, 2025


See the original blog version in English here.

Our mission is to make the Internet a safer place, and the new login standard passkeys provides a superior solution to achieve that. That's why we want to help you understand passkeys and its characteristics better.

Tổng quan#

1. Giới thiệu: API Web Bluetooth & Passkeys#

Passkeys là tiêu chuẩn đăng nhập mới trên web. Một trong những tính năng cốt lõi của passkey là Xác thực chéo thiết bị (CDA) qua Bluetooth và Mã QR. Trong bối cảnh này, một API web khác trở nên quan trọng: API Web Bluetooth.

Bằng cách cho phép các ứng dụng web tương tác trực tiếp với các thiết bị Bluetooth, API Web Bluetooth đóng một vai trò quan trọng trong việc đảm bảo các quy trình xác thực an toàn và hiệu quả (đặc biệt là đối với CDA).

Bài viết này sẽ trình bày cách hoạt động của API Web Bluetooth và khám phá những tác động của việc phát hiện Bluetooth đối với xác thực bằng passkey. Chúng ta sẽ cùng trả lời các câu hỏi sau:

  1. API Web Bluetooth là gì?
  2. Làm thế nào để sử dụng API Web Bluetooth?
  3. Tại sao việc phát hiện Bluetooth lại quan trọng đối với passkey?

2. API Web Bluetooth là gì?#

API Web Bluetooth là một giao diện JavaScript cho phép các ứng dụng web truy cập và giao tiếp với các thiết bị Bluetooth. Nó là một phần của tiêu chuẩn HTML5 và được hỗ trợ bởi các trình duyệt như Chrome, Edge và Opera. API này cho phép các ứng dụng web:

  • quét các thiết bị Bluetooth năng lượng thấp (BLE) ở gần
  • yêu cầu quyền ghép nối
  • trao đổi dữ liệu bằng giao thức Hồ sơ thuộc tính chung (GATT).

Có ba hàm chính của API Web Bluetooth.

2.1 getAvailability()#

getAvailability() trả về một promise phân giải thành một giá trị Boolean cho biết liệu user agent có thể hỗ trợ Bluetooth hay không (tức là thiết bị có mô-đun Bluetooth). Một số user agent cho phép người dùng cấu hình một tùy chọn để chỉ định giá trị được trả về bởi phương thức này.

navigator.bluetooth.getAvailability().then((available) => { if (available) { console.log("This device supports Bluetooth!"); } else { console.log("Doh! Bluetooth is not supported"); } });
Substack Icon

Subscribe to our Passkeys Substack for the latest news.

Subscribe

2.2 getDevices()#

getDevices() trả về một promise phân giải thành một mảng các BluetoothDevices mà origin được phép truy cập (bao gồm cả những thiết bị ngoài phạm vi và đã tắt nguồn). Quyền truy cập được cấp thông qua các lệnh gọi trước đó đến Bluetooth.requestDevice().

navigator.bluetooth.getDevices().then((devices) => { devices.forEach((device) => { console.log("Device:", device.name); }); });

2.3 requestDevice()#

requestDevice() trả về một promise đến một đối tượng BluetoothDevice với các tùy chọn được chỉ định. Nếu không có giao diện người dùng để chọn, phương thức này sẽ trả về thiết bị đầu tiên khớp với tiêu chí.

navigator.bluetooth .requestDevice({ filters: [ { services: ["battery_service"], }, ], }) .then((device) => { console.log("Device:", device.name); }) .catch((error) => { console.log("Error:", error); });

Chi tiết và các đoạn mã có thể được tìm thấy tại đây. Bạn cũng có thể tìm thấy tiêu chuẩn W3C cho Web Bluetooth tại đây.

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

3. Đặc điểm của API Web Bluetooth#

  • Chỉ HTTPS: API Web Bluetooth chỉ khả dụng trong các ngữ cảnh an toàn (HTTPS), đảm bảo việc truyền dữ liệu an toàn.
  • Yêu cầu cử chỉ của người dùng: Việc khám phá thiết bị qua navigator.bluetooth.requestDevice phải được kích hoạt bởi một cử chỉ của người dùng, chẳng hạn như chạm hoặc nhấp chuột, vì lý do bảo mật.

4. Cách sử dụng API Web Bluetooth#

Để kiểm tra xem API Web Bluetooth có được hỗ trợ hay không, bạn có thể sử dụng đoạn mã sau:

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

Cách gọi các hàm cụ thể đã được giải thích ở trên.

5. Lợi ích của API Web Bluetooth#

API Web Bluetooth mang lại một số lợi ích cho nhà phát triển và người dùng:

  • Tính tương tác: Cho phép các ứng dụng web tương tác với các thiết bị Bluetooth mà không cần ứng dụng gốc hoặc plugin.
  • Nâng cao trải nghiệm người dùng: Cho phép truy cập vào các tính năng và cảm biến của các thiết bị không dây như máy đo nhịp tim hoặc điều khiển nhạc.
  • Bảo mật & Quyền riêng tư: Người dùng phải cấp quyền truy cập thiết bị, và quyền này có thể bị thu hồi bất cứ lúc nào.

6. Các vấn đề với API Web Bluetooth#

Mặc dù có nhiều lợi ích, API Web Bluetooth vẫn có những hạn chế:

  • Không được Safari và Firefox hỗ trợ: Không phải tất cả các trình duyệt đều hỗ trợ API này. Đáng chú ý, Safari và Firefox không hỗ trợ, điều này có thể ảnh hưởng đến một phần đáng kể người dùng.
  • Phụ thuộc vào khả năng của thiết bị: API chỉ hoạt động với các thiết bị Bluetooth năng lượng thấp (BLE) tương thích. Ngoài ra, các thiết bị có thể không thể phát hiện được do các yếu tố như pin yếu hoặc ở ngoài phạm vi.
  • Đặc tả đang phát triển: Là một bản nháp đặc tả, API Web Bluetooth có thể thay đổi. Các nhà phát triển cần cập nhật những phát triển mới nhất và khả năng tương thích của trình duyệt.
  • Dương tính giả: API đôi khi có thể chỉ ra rằng Bluetooth được hỗ trợ trong khi thực tế lại không có.
  • Tính khả dụng do người dùng kiểm soát: Người dùng và trình duyệt có thể vô hiệu hóa quyền Bluetooth, khiến getAvailability() trả về false ngay cả khi có bộ điều hợp Bluetooth. Điều này được kiểm soát thông qua Permissions-Policy:Bluetooth. Tương tự, ngay cả khi getAvailability() trả về true, bộ điều hợp Bluetooth có thể không được bật, hoặc người dùng có thể từ chối quyền sử dụng API khi được nhắc.

7. Mức độ áp dụng API Web Bluetooth#

Mức độ áp dụng API Web Bluetooth vẫn đang tăng lên. Tính đến tháng 6 năm 2024, theo Can I Use, 76,53% người dùng toàn cầu có thiết bị hỗ trợ API Web Bluetooth.

Tuy nhiên, việc thiếu hỗ trợ trong Safari và Firefox vẫn là một trở ngại đáng kể, ảnh hưởng đến trải nghiệm người dùng trên các trình duyệt đó. Ngoài ra, một số tính năng (ví dụ: Bluetooth.getDevices()) phải được người dùng bật một cách rõ ràng, điều này có thể là một thách thức khi sử dụng API ở chế độ nền.

Tìm dữ liệu mới nhất tại: https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility

8. Tại sao việc phát hiện Bluetooth lại quan trọng đối với Passkeys?#

Có một lý do chính tại sao các bên tin cậy nên biết về tính khả dụng của Bluetooth khi họ muốn cung cấp passkey trên trang web và ứng dụng của mình.

8.1 Tính năng cốt lõi của Passkey: Xác thực chéo thiết bị (CDA) qua Mã QR & Bluetooth#

Một trong những tính năng mới, đột phá của passkey là Xác thực chéo thiết bị (CDA) – còn được gọi là xác thực kết hợp. Tính năng này cho phép người dùng xác thực trên một thiết bị (thường là máy tính để bàn hoặc máy tính xách tay) bằng thiết bị di động của họ thông qua mã QR và Bluetooth. Phương pháp xác thực kết hợp này giúp tăng cường bảo mật và sự tiện lợi, mang lại trải nghiệm người dùng liền mạch. Hầu hết người dùng không chuyên về kỹ thuật ngày nay đã quen với việc quét mã QR, dù là trong đại dịch COVID để đăng ký hay qua các ứng dụng nhắn tin ưu tiên di động sau đó đã thêm hỗ trợ cho máy tính để bàn (ví dụ: WhatsApp hoặc Telegram).

Việc quyết định một chiến lược CDA là rất quan trọng khi bắt đầu bất kỳ dự án passkey nào. Chúng ta càng phụ thuộc vào CDA, thì sự hỗ trợ và độ tin cậy của nó càng cần phải tốt hơn. Do đó, việc phát hiện tính khả dụng của Bluetooth trên một thiết bị là rất cần thiết.

8.2 Bluetooth không phải lúc nào cũng có sẵn và có thể ảnh hưởng xấu đến trải nghiệm người dùng CDA#

Tuy nhiên, không phải tất cả các thiết bị đều có khả năng Bluetooth hoặc có thể đã tắt Bluetooth. Đối với các bên tin cậy cung cấp passkey, việc phát hiện tính khả dụng của Bluetooth là rất cần thiết để xác định xem có thể sử dụng CDA hay không hoặc có cần một phương thức xác thực dự phòng khác. API Web Bluetooth cung cấp một giải pháp bằng cách cho phép các ứng dụng web kiểm tra tính khả dụng của Bluetooth trên thiết bị của người dùng.

Hãy nhớ rằng CDA không phải lúc nào cũng ổn định, đôi khi không thể kết nối mà không có lý do rõ ràng. Hơn nữa, do API còn mới, đôi khi API trả về kết quả sai.

8.3 Tác động khác nhau của việc không có Bluetooth trên Firefox và Safari#

Việc API Web Bluetooth không khả dụng trên Firefox và Safari là một vấn đề, đặc biệt là đối với Firefox.

Safari ít đáng lo ngại hơn vì các thiết bị macOS, nơi CDA có thể được thực hiện, đã có Bluetooth tích hợp sẵn từ các mẫu đời đầu. Tuy nhiên, nếu Bluetooth trên macOS không hoạt động, người dùng có thể gặp sự cố với xác thực chéo thiết bị và cần phải khắc phục sự cố cài đặt của họ hoặc quay lại phương thức dự phòng. Các iPhone chạy Safari đã có Bluetooth tích hợp sẵn từ khi ra mắt.

Tuy nhiên, Firefox là một vấn đề đáng kể vì nó phổ biến trên các thiết bị Windows. Nếu người dùng đang sử dụng Firefox và muốn dùng CDA, bên tin cậy không thể xác định một cách đáng tin cậy liệu Bluetooth có khả dụng hay không, vì API Web Bluetooth không được triển khai. Điều này có thể dẫn đến trải nghiệm người dùng kém, người dùng có thể bị kẹt ở một số điểm mà không biết phải làm gì.

Như chúng ta đã thấy trong các bài viết trước, các thiết bị Windows đang tụt hậu về mức độ áp dụng passkey (xem thêm State of Passkeys). Hãy cùng xem xét mức độ phổ biến của tính khả dụng Bluetooth.

9. Windows 10 có yêu cầu về Bluetooth không?#

Windows 10 không có yêu cầu nghiêm ngặt về Bluetooth, nhưng hầu hết các máy tính xách tay và máy tính để bàn hiện đại đều có khả năng Bluetooth. Tuy nhiên, người dùng có thể đã tắt nó, hoặc nó có thể không khả dụng trong một số cấu hình, đặc biệt là trên các máy tính để bàn tự lắp ráp.

10. Windows 11 có yêu cầu về Bluetooth không?#

Windows 11, tương tự như Windows 10, không bắt buộc phải có Bluetooth. Tuy nhiên, xu hướng hướng tới phần cứng tích hợp và hiện đại hơn có nghĩa là hầu hết các thiết bị tương thích với Windows 11 đều có khả năng Bluetooth. Tuy nhiên, người dùng có thể vô hiệu hóa nó, ảnh hưởng đến việc triển khai CDA.

11. Khuyến nghị#

Trong bảng dưới đây, bạn có thể xem liệu mình có thể xác định được một thiết bị máy tính để bàn có sẵn sàng Bluetooth và do đó có thể được sử dụng làm máy khách CDA hay không:

Hệ điều hànhHỗ trợ phần cứng BluetoothPhát hiện Bluetooth trên trình duyệt
ChromeEdgeFirefoxSafari
Windows 10thấp
Windows 11trung bình
macOScao

Hãy nhớ rằng ngay cả khi phần cứng của bạn đã sẵn sàng cho Bluetooth, chức năng Bluetooth có thể bị người dùng tắt. Khi Bluetooth bị tắt, người dùng vẫn có thể sử dụng CDA vì họ vẫn có thể chọn bật nó lên, điều này hoạt động cho cả Windows và Mac: Yêu cầu bật Bluetooth trên macOS

Yêu cầu bật Bluetooth trên Windows 11

Thông tin về tính khả dụng của Bluetooth đặc biệt thú vị trên Windows 10 và Windows 11, nơi hỗ trợ Bluetooth thấp hơn và có khả năng rất cao là xác thực chéo thiết bị sẽ cần phải diễn ra (trong một lần đăng nhập dựa trên passkey). Các thiết bị macOS gần đây đều hỗ trợ Bluetooth. Các thiết bị macOS này cũng có khả năng truy cập trực tiếp vào các passkey được lưu trữ trong iCloud Keychain, vì vậy chúng không phải là mối quan tâm.

Trên Windows 10 và Windows 11: Hãy sử dụng getAvailability() để xem Bluetooth có hoạt động được không. Trong trường hợp người dùng chỉ có passkey không phải của Windows, chúng ta có thể ngay lập tức chuyển sang các phương thức xác thực khác.

Trong tình huống chỉ có sẵn các passkey kết hợp, việc kích hoạt xác thực bằng passkey sẽ không dẫn đến một lần xác thực thành công, mà thay vào đó là một ngõ cụt cho người dùng. Đối với tất cả các trình duyệt khác trên Windows 10 và Windows 11, thật không may, không có cách nào khác để tìm hiểu xem có hỗ trợ cho CDA hay không.

12. Kết luận: API Web Bluetooth cho Passkeys#

API Web Bluetooth đại diện cho một công cụ mạnh mẽ để tăng cường xác thực bằng passkey thông qua các khả năng của Bluetooth. Bằng cách hiểu và tận dụng API này, các nhà phát triển có thể tạo ra các phương thức xác thực an toàn và thân thiện với người dùng hơn. Tuy nhiên, họ cũng phải điều hướng các hạn chế của nó và đảm bảo các cơ chế dự phòng mạnh mẽ để duy trì trải nghiệm người dùng liền mạch trên các trình duyệt và thiết bị khác nhau.

Với bài viết này, chúng ta đã đưa ra câu trả lời cho ba câu hỏi cốt lõi:

  1. API Web Bluetooth là gì? API Web Bluetooth là một giao diện JavaScript cho phép các ứng dụng web truy cập và giao tiếp với các thiết bị Bluetooth, tạo điều kiện cho các tương tác an toàn.
  2. Làm thế nào để sử dụng API Web Bluetooth? Sử dụng API Web Bluetooth bằng cách gọi các hàm như getAvailability(), getDevices()requestDevice() để kiểm tra hỗ trợ Bluetooth, liệt kê các thiết bị có thể truy cập và yêu cầu ghép nối thiết bị.
  3. Tại sao việc phát hiện Bluetooth lại quan trọng đối với passkey? Bằng cách tích hợp API Web Bluetooth vào chiến lược triển khai passkey của mình, chúng ta có thể xây dựng một giải pháp xác thực dựa trên passkey tuyệt vời, chỉ chuyển sang CDA khi có các thiết bị có thể phát hiện hỗ trợ Bluetooth.

Để biết thêm thông tin về API Web Bluetooth và một bộ sưu tập các ví dụ, vui lòng nhấp vào đây.

Add passkeys to your app in <1 hour with our UI components, SDKs & guides.

Start Free Trial

Share this article


LinkedInTwitterFacebook

Enjoyed this read?

🤝 Join our Passkeys Community

Share passkeys implementation tips and get support to free the world from passwords.

🚀 Subscribe to Substack

Get the latest news, strategies, and insights about passkeys sent straight to your inbox.

Related Articles