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

API Web Bluetooth & Passkeys

Pahami peran API Web Bluetooth untuk passkeys! Pelajari bagaimana deteksi ketersediaan Bluetooth meningkatkan Autentikasi Lintas Perangkat (CDA) dengan 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.

Ikhtisar#

1. Pendahuluan: API Web Bluetooth & Passkeys#

Passkeys adalah standar login baru di web. Salah satu fitur inti passkey adalah Autentikasi Lintas Perangkat (CDA) melalui Bluetooth dan Kode QR. Dalam konteks ini, ada satu API web lain yang menjadi penting: API Web Bluetooth.

Dengan memungkinkan aplikasi web berinteraksi langsung dengan perangkat Bluetooth, API Web Bluetooth memainkan peran penting dalam memastikan proses autentikasi yang aman dan efisien (terutama untuk CDA).

Postingan blog ini akan menyajikan cara kerja API Web Bluetooth dan mengeksplorasi implikasi deteksi Bluetooth untuk autentikasi passkey. Kita ingin menjawab pertanyaan-pertanyaan berikut:

  1. Apa itu API Web Bluetooth?
  2. Bagaimana cara menggunakan API Web Bluetooth?
  3. Mengapa deteksi Bluetooth penting untuk passkeys?

2. Apa Itu API Web Bluetooth?#

API Web Bluetooth adalah antarmuka JavaScript yang memungkinkan aplikasi web mengakses dan berkomunikasi dengan perangkat Bluetooth. API ini merupakan bagian dari standar HTML5 dan didukung oleh browser seperti Chrome, Edge, dan Opera. API ini memungkinkan aplikasi web untuk:

  • memindai perangkat Bluetooth Low Energy (BLE) terdekat
  • meminta izin untuk melakukan pairing
  • bertukar data menggunakan protokol Generic Attribute Profile (GATT).

Ada tiga fungsi utama dari API Web Bluetooth.

2.1 getAvailability()#

getAvailability() mengembalikan promise yang menghasilkan nilai Boolean yang menunjukkan apakah user agent dapat mendukung Bluetooth (artinya perangkat memiliki modul Bluetooth). Beberapa user agent memungkinkan pengguna mengonfigurasi opsi yang menentukan nilai apa yang dikembalikan oleh metode ini.

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() mengembalikan promise yang menghasilkan array BluetoothDevices yang diizinkan untuk diakses oleh origin (termasuk yang berada di luar jangkauan dan dimatikan). Izin diperoleh melalui panggilan sebelumnya ke Bluetooth.requestDevice().

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

2.3 requestDevice()#

requestDevice() mengembalikan promise ke objek BluetoothDevice dengan opsi yang ditentukan. Jika tidak ada UI pemilih, metode ini mengembalikan perangkat pertama yang cocok dengan kriteria.

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

Detail dan cuplikan kode dapat ditemukan di sini. Temukan juga standar W3C untuk Web Bluetooth di sini.

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

3. Karakteristik API Web Bluetooth#

  • Hanya HTTPS: API Web Bluetooth hanya tersedia dalam konteks aman (HTTPS), untuk memastikan transmisi data yang aman.
  • Memerlukan gestur pengguna: Penemuan perangkat melalui navigator.bluetooth.requestDevice harus dipicu oleh gestur pengguna, seperti sentuhan atau klik mouse, untuk alasan keamanan.

4. Cara Menggunakan API Web Bluetooth#

Untuk memeriksa dukungan API Web Bluetooth, Anda dapat melakukannya melalui kode berikut:

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!"); }

Cara memanggil fungsi-fungsi spesifik telah dijelaskan di atas.

5. Manfaat API Web Bluetooth#

API Web Bluetooth menawarkan beberapa keuntungan bagi pengembang dan pengguna:

  • Interaktivitas: Memungkinkan aplikasi web berinteraksi dengan perangkat Bluetooth tanpa aplikasi atau plugin native.
  • Pengalaman Pengguna yang Ditingkatkan: Memungkinkan akses ke fitur perangkat dan sensor perangkat nirkabel seperti monitor detak jantung atau kontrol musik.
  • Keamanan & Privasi: Pengguna harus memberikan izin untuk akses perangkat, yang dapat dicabut kapan saja.

6. Masalah pada API Web Bluetooth#

Terlepas dari manfaatnya, API Web Bluetooth memiliki beberapa keterbatasan:

  • Tidak Didukung oleh Safari dan Firefox: Tidak semua browser mendukung API ini. Terutama, Safari dan Firefox tidak mendukungnya, yang dapat memengaruhi sebagian besar pengguna.
  • Ketergantungan pada Kemampuan Perangkat: API ini hanya berfungsi dengan perangkat Bluetooth Low Energy (BLE) yang kompatibel. Selain itu, perangkat mungkin tidak dapat ditemukan karena faktor-faktor seperti baterai lemah atau berada di luar jangkauan.
  • Spesifikasi yang Terus Berkembang: Sebagai spesifikasi draf, API Web Bluetooth dapat mengalami perubahan. Pengembang perlu tetap mengikuti perkembangan terbaru dan kompatibilitas browser.
  • Positif Palsu: API terkadang dapat menunjukkan dukungan Bluetooth padahal sebenarnya tidak tersedia.
  • Ketersediaan yang Dikontrol Pengguna: Pengguna dan browser dapat menonaktifkan izin Bluetooth, menyebabkan getAvailability() mengembalikan nilai false meskipun adaptor Bluetooth ada. Ini dikontrol melalui Permissions-Policy:Bluetooth. Demikian pula, bahkan jika getAvailability() mengembalikan nilai true, adaptor Bluetooth mungkin tidak dinyalakan, atau pengguna mungkin menolak izin untuk menggunakan API saat diminta.

7. Adopsi API Web Bluetooth#

Adopsi API Web Bluetooth masih terus berkembang. Per Juni 2024, menurut Can I Use, 76,53% pengguna global memiliki perangkat dengan dukungan untuk API Web Bluetooth.

Namun, kurangnya dukungan di Safari dan Firefox tetap menjadi kendala signifikan, yang memengaruhi pengalaman pengguna di browser tersebut. Selain itu, beberapa fitur (misalnya, Bluetooth.getDevices()) harus diaktifkan secara eksplisit oleh pengguna, yang bisa menjadi tantangan untuk menggunakan API di latar belakang.

Temukan data terbaru di: https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility

8. Mengapa Deteksi Bluetooth Penting untuk Passkeys?#

Ada satu alasan utama mengapa relying party harus mengetahui ketersediaan Bluetooth, ketika mereka ingin menawarkan passkeys di situs web dan aplikasi mereka.

8.1 Fitur Inti Passkey: Autentikasi Lintas Perangkat (CDA) melalui Kode QR & Bluetooth#

Salah satu fitur baru dan inovatif dari passkeys adalah Autentikasi Lintas Perangkat (CDA) – juga dikenal sebagai autentikasi hibrida. Fitur ini memungkinkan pengguna untuk melakukan autentikasi di satu perangkat (biasanya desktop atau laptop) menggunakan perangkat seluler mereka melalui kode QR dan Bluetooth. Metode autentikasi hibrida ini meningkatkan keamanan dan kenyamanan, memberikan pengalaman pengguna yang mulus. Sebagian besar pengguna non-teknis saat ini sudah terbiasa memindai kode QR, baik selama pandemi COVID untuk registrasi maupun melalui aplikasi pesan mobile-first yang kemudian menambahkan dukungan desktop (misalnya, WhatsApp atau Telegram).

Memutuskan strategi CDA sangat penting di awal setiap proyek passkey. Semakin Anda mengandalkan CDA, semakin baik dukungan dan keandalannya. Oleh karena itu, mendeteksi ketersediaan Bluetooth pada perangkat menjadi sangat penting.

8.2 Bluetooth Tidak Selalu Ada dan Bisa Berdampak Buruk pada UX CDA#

Namun, tidak semua perangkat memiliki kemampuan Bluetooth atau mungkin Bluetooth-nya dimatikan. Bagi relying party yang menawarkan passkeys, penting untuk mendeteksi ketersediaan Bluetooth untuk menentukan apakah CDA dapat digunakan atau jika metode autentikasi cadangan lain diperlukan. API Web Bluetooth memberikan solusi dengan memungkinkan aplikasi web memeriksa ketersediaan Bluetooth pada perangkat pengguna.

Harap diingat bahwa CDA tidak selalu stabil, terkadang gagal terhubung tanpa alasan yang jelas. Selain itu, karena API ini masih baru, terkadang hasil yang salah dikembalikan oleh API.

8.3 Dampak Berbeda dari Ketiadaan Bluetooth di Firefox dan Safari#

Tidak tersedianya API Web Bluetooth di Firefox dan Safari menjadi masalah, terutama untuk Firefox.

Safari tidak terlalu menjadi masalah karena perangkat macOS, tempat CDA mungkin dilakukan, telah memiliki Bluetooth bawaan sejak model-model awal. Namun, jika Bluetooth di macOS tidak berfungsi, pengguna mungkin mengalami masalah dengan autentikasi lintas perangkat dan perlu memecahkan masalah pengaturan mereka atau kembali ke metode cadangan. iPhone yang menjalankan Safari telah memiliki Bluetooth bawaan sejak awal.

Namun, Firefox menjadi masalah signifikan karena populer di perangkat Windows. Jika pengguna menggunakan Firefox dan ingin menggunakan CDA, relying party tidak dapat secara andal menentukan apakah Bluetooth tersedia, karena API Web Bluetooth tidak diimplementasikan. Hal ini dapat mengakibatkan pengalaman pengguna yang buruk, dengan pengguna berpotensi terjebak di titik-titik tertentu tanpa tahu harus berbuat apa.

Seperti yang telah kita lihat di blog-blog sebelumnya, perangkat Windows juga tertinggal dalam hal adopsi passkey (lihat juga State of Passkeys). Mari kita lihat seberapa umum ketersediaan Bluetooth.

9. Apakah Windows 10 Memiliki Persyaratan Bluetooth?#

Windows 10 tidak memiliki persyaratan Bluetooth yang ketat, tetapi sebagian besar laptop dan desktop modern dilengkapi dengan kemampuan Bluetooth. Namun, pengguna mungkin mematikannya, atau mungkin tidak tersedia di beberapa konfigurasi, terutama pada desktop rakitan.

10. Apakah Windows 11 Memiliki Persyaratan Bluetooth?#

Windows 11, mirip dengan Windows 10, tidak mewajibkan Bluetooth. Namun, tren menuju perangkat keras yang lebih terintegrasi dan modern berarti sebagian besar perangkat yang kompatibel dengan Windows 11 kemungkinan besar akan memiliki kemampuan Bluetooth. Namun, pengguna dapat menonaktifkannya, yang memengaruhi implementasi CDA.

11. Rekomendasi#

Pada tabel berikut, Anda dapat melihat apakah Anda dapat menentukan apakah perangkat desktop siap Bluetooth dan dengan demikian dapat digunakan sebagai klien CDA:

Sistem operasiDukungan Perangkat Keras BluetoothDeteksi Bluetooth Browser
ChromeEdgeFirefoxSafari
Windows 10rendah
Windows 11sedang
macOStinggi

Perlu diingat bahwa meskipun perangkat keras Anda siap Bluetooth, fungsionalitas Bluetooth mungkin dimatikan oleh pengguna. Ketika Bluetooth dimatikan, pengguna masih dapat menggunakan CDA karena pengguna masih dapat memilih untuk mengaktifkannya, yang berfungsi untuk Windows dan Mac: Permintaan macOS untuk menyalakan Bluetooth

Permintaan Windows 11 untuk menyalakan Bluetooth

Informasi ketersediaan Bluetooth sangat menarik pada Windows 10 dan Windows 11, di mana dukungan Bluetooth lebih rendah dan ada kemungkinan sangat tinggi autentikasi lintas perangkat perlu terjadi (dalam login berbasis passkey). Perangkat macOS terbaru semuanya memiliki dukungan untuk Bluetooth. Perangkat macOS ini berpotensi juga memiliki akses langsung ke passkeys yang disimpan di iCloud Keychain, jadi tidak perlu dikhawatirkan.

Di Windows 10 dan Windows 11: Gunakan getAvailability() untuk mengetahui apakah Bluetooth dapat berfungsi. Jika pengguna hanya memiliki passkeys non-Windows, Anda dapat segera beralih ke opsi autentikasi lain.

Dalam situasi di mana hanya tersedia passkeys hibrida, memicu autentikasi passkey tidak akan menghasilkan autentikasi yang berhasil, melainkan jalan buntu bagi pengguna. Untuk semua browser lain di Windows 10 dan Windows 11, sayangnya, tidak ada cara lain untuk mengetahui apakah ada dukungan untuk CDA.

12. Kesimpulan: API Web Bluetooth untuk Passkeys#

API Web Bluetooth merupakan alat yang ampuh untuk meningkatkan autentikasi passkey melalui kemampuan Bluetooth. Dengan memahami dan memanfaatkan API ini, pengembang dapat menciptakan metode autentikasi yang lebih aman dan ramah pengguna. Namun, mereka juga harus menavigasi keterbatasannya dan memastikan mekanisme cadangan yang kuat untuk menjaga pengalaman pengguna yang mulus di berbagai browser dan perangkat.

Dengan postingan blog ini, kami telah memberikan jawaban atas tiga pertanyaan inti:

  1. Apa itu API Web Bluetooth? API Web Bluetooth adalah antarmuka JavaScript yang memungkinkan aplikasi web mengakses dan berkomunikasi dengan perangkat Bluetooth, memfasilitasi interaksi yang aman.
  2. Bagaimana cara menggunakan API Web Bluetooth? Gunakan API Web Bluetooth dengan memanggil fungsi seperti getAvailability(), getDevices(), dan requestDevice() untuk memeriksa dukungan Bluetooth, mendaftar perangkat yang dapat diakses, dan meminta pairing perangkat.
  3. Mengapa deteksi Bluetooth untuk passkeys penting? Dengan mengintegrasikan API Web Bluetooth ke dalam strategi implementasi passkey Anda, Anda dapat membangun solusi autentikasi berbasis passkey yang hebat yang beralih ke CDA hanya jika ada perangkat yang dapat mendeteksi dukungan Bluetooth.

Untuk informasi lebih lanjut mengenai API Web Bluetooth dan kumpulan contoh, silakan klik di sini.

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