पासकीज़ के लिए वेब ब्लूटूथ API की भूमिका को समझें! जानें कि ब्लूटूथ उपलब्धता का पता लगाना WebAuthn के साथ क्रॉस-डिवाइस ऑथेंटिकेशन (CDA) को कैसे बेहतर बनाता है।
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.
2.2 getDevices()
2.3 requestDevice()
8.1 पासकी की मुख्य विशेषता: QR कोड और ब्लूटूथ के माध्यम से क्रॉस-डिवाइस ऑथेंटिकेशन (CDA)
8.2 ब्लूटूथ हमेशा मौजूद नहीं होता और CDA UX के लिए खराब हो सकता है
8.3 Firefox और Safari में ब्लूटूथ की अनुपलब्धता का अलग-अलग प्रभाव
पासकीज़ वेब में लॉगिन का नया स्टैंडर्ड हैं। पासकी की मुख्य विशेषताओं में से एक है ब्लूटूथ और QR कोड के माध्यम से क्रॉस-डिवाइस ऑथेंटिकेशन (CDA)। इस संदर्भ में, एक और वेब API महत्वपूर्ण हो जाता है: वेब ब्लूटूथ API।
वेब ऐप्स को सीधे ब्लूटूथ डिवाइस के साथ इंटरैक्ट करने में सक्षम बनाकर, वेब ब्लूटूथ API सुरक्षित और कुशल ऑथेंटिकेशन प्रक्रियाओं (विशेषकर CDA के लिए) को सुनिश्चित करने में महत्वपूर्ण भूमिका निभाता है।
यह ब्लॉग पोस्ट वेब ब्लूटूथ API के कामकाज को प्रस्तुत करेगा और पासकी ऑथेंटिकेशन के लिए ब्लूटूथ डिटेक्शन के प्रभावों का पता लगाएगा। हम निम्नलिखित सवालों के जवाब देना चाहते हैं:
वेब ब्लूटूथ API एक जावास्क्रिप्ट इंटरफ़ेस है जो वेब ऐप्स को ब्लूटूथ डिवाइस तक पहुंचने और उनके साथ संचार करने की अनुमति देता है। यह HTML5 स्टैंडर्ड का हिस्सा है और इसे Chrome, Edge, और Opera जैसे ब्राउज़रों द्वारा सपोर्ट किया जाता है। यह API वेब ऐप्स को सक्षम बनाता है:
वेब ब्लूटूथ API के तीन प्रमुख फ़ंक्शन हैं।
getAvailability()
एक प्रॉमिस लौटाता है जो एक बूलियन में रिजॉल्व होता है, यह दर्शाता है कि क्या यूज़र एजेंट ब्लूटूथ को सपोर्ट कर सकता है (यानी डिवाइस में ब्लूटूथ मॉड्यूल है)। कुछ यूज़र एजेंट यूज़र को एक विकल्प कॉन्फ़िगर करने देते हैं जो यह निर्दिष्ट करता है कि इस मेथड द्वारा कौन सा मान लौटाया जाता है।
navigator.bluetooth.getAvailability().then((available) => { if (available) { console.log("This device supports Bluetooth!"); } else { console.log("Doh! Bluetooth is not supported"); } });
getDevices()
एक प्रॉमिस लौटाता है जो BluetoothDevices
के एक ऐरे में रिजॉल्व होता है, जिसे ऑरिजिन एक्सेस करने की अनुमति देता है (उन डिवाइसों सहित जो रेंज से बाहर हैं और बंद हैं)। अनुमति Bluetooth.requestDevice()
पर पिछली कॉल्स के माध्यम से प्राप्त की जाती है।
navigator.bluetooth.getDevices().then((devices) => { devices.forEach((device) => { console.log("Device:", device.name); }); });
requestDevice()
निर्दिष्ट विकल्पों के साथ एक BluetoothDevice
ऑब्जेक्ट के लिए एक प्रॉमिस लौटाता है। यदि कोई चयनकर्ता UI नहीं है, तो यह मेथड मानदंडों से मेल खाने वाले पहले डिवाइस को लौटाता है।
navigator.bluetooth .requestDevice({ filters: [ { services: ["battery_service"], }, ], }) .then((device) => { console.log("Device:", device.name); }) .catch((error) => { console.log("Error:", error); });
विवरण और कोड स्निपेट यहां मिल सकते हैं। वेब ब्लूटूथ के लिए W3C स्टैंडर्ड भी यहां देखें।
navigator.bluetooth.requestDevice
के माध्यम से डिवाइस की खोज को यूज़र जेस्चर, जैसे कि टच या माउस क्लिक, द्वारा ट्रिगर किया जाना चाहिए।वेब ब्लूटूथ API के सपोर्ट की जांच करने के लिए, आप निम्नलिखित कोड के माध्यम से ऐसा कर सकते हैं:
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!"); }
विशिष्ट फ़ंक्शन को कैसे कॉल किया जाता है, यह ऊपर समझाया गया है।
वेब ब्लूटूथ API डेवलपर्स और यूज़र्स के लिए कई फायदे प्रदान करता है:
इसके लाभों के बावजूद, वेब ब्लूटूथ API की कुछ सीमाएँ हैं:
getAvailability()
गलत मान लौटा सकता है। यह Permissions-Policy:Bluetooth
के माध्यम से नियंत्रित होता है। इसी तरह, भले ही getAvailability()
सही मान लौटाए, ब्लूटूथ एडॉप्टर चालू नहीं हो सकता है, या यूज़र्स संकेत मिलने पर API का उपयोग करने की अनुमति से इनकार कर सकते हैं।वेब ब्लूटूथ API को अपनाना अभी भी बढ़ रहा है। जून 2024 तक, Can I Use के अनुसार, 76.53% वैश्विक यूज़र्स के पास वेब ब्लूटूथ API के सपोर्ट वाले डिवाइस हैं।
हालांकि, Safari और Firefox में सपोर्ट की कमी एक महत्वपूर्ण बाधा बनी हुई है, जो उन ब्राउज़रों पर यूज़र एक्सपीरियंस को प्रभावित करती है। इसके अलावा, कुछ सुविधाएँ (जैसे Bluetooth.getDevices()
) को यूज़र द्वारा स्पष्ट रूप से चालू किया जाना चाहिए, जो बैकग्राउंड में API का उपयोग करने के लिए एक चुनौती हो सकती है।
नवीनतम डेटा यहां पाएं: https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility
एक प्रमुख कारण है कि रिलाइंग पार्टीज़ को ब्लूटूथ की उपलब्धता के बारे में पता होना चाहिए, जब वे अपनी वेबसाइटों और एप्लिकेशन में पासकीज़ की पेशकश करना चाहते हैं।
पासकीज़ की नई, अभिनव विशेषताओं में से एक क्रॉस-डिवाइस ऑथेंटिकेशन (CDA) है - जिसे हाइब्रिड ऑथेंटिकेशन के रूप में भी जाना जाता है। यह सुविधा यूज़र्स को QR कोड और ब्लूटूथ के माध्यम से अपने मोबाइल डिवाइस का उपयोग करके एक डिवाइस (आमतौर पर एक डेस्कटॉप या लैपटॉप) पर प्रमाणित करने की अनुमति देती है। यह हाइब्रिड ऑथेंटिकेशन विधि सुरक्षा और सुविधा को बढ़ाती है, एक सहज यूज़र एक्सपीरियंस प्रदान करती है। अधिकांश गैर-तकनीकी यूज़र्स आजकल QR कोड स्कैन करने के आदी हैं, चाहे वह COVID महामारी के दौरान पंजीकरण के लिए हो या मोबाइल-फर्स्ट मैसेजिंग ऐप्स के माध्यम से जिन्होंने बाद में डेस्कटॉप सपोर्ट जोड़ा (जैसे, WhatsApp या Telegram)।
किसी भी पासकी प्रोजेक्ट की शुरुआत में CDA रणनीति पर निर्णय लेना महत्वपूर्ण है। आप जितना अधिक CDA पर भरोसा करते हैं, उसका सपोर्ट और विश्वसनीयता उतनी ही बेहतर होनी चाहिए। इस प्रकार, किसी डिवाइस पर ब्लूटूथ की उपलब्धता का पता लगाना आवश्यक है।
हालांकि, सभी डिवाइस में ब्लूटूथ क्षमताएं नहीं होती हैं या ब्लूटूथ बंद हो सकता है। पासकीज़ की पेशकश करने वाली रिलाइंग पार्टीज़ के लिए, यह निर्धारित करने के लिए ब्लूटूथ की उपलब्धता का पता लगाना आवश्यक है कि क्या CDA का उपयोग किया जा सकता है या किसी अन्य फॉलबैक ऑथेंटिकेशन विधि की आवश्यकता है। वेब ब्लूटूथ API यूज़र डिवाइस पर ब्लूटूथ की उपलब्धता की जांच करने के लिए वेब ऐप्स को सक्षम करके एक समाधान प्रदान करता है।
कृपया ध्यान रखें कि CDA हमेशा स्थिर नहीं होता है, कभी-कभी स्पष्ट कारणों के बिना कनेक्ट होने में विफल रहता है। इसके अलावा, API की नवीनता के कारण, कभी-कभी API द्वारा गलत परिणाम लौटाए जाते हैं।
Firefox और Safari में वेब ब्लूटूथ API की अनुपलब्धता एक समस्या है, खासकर Firefox के लिए।
Safari कम समस्या है क्योंकि macOS डिवाइस, जहां CDA किया जा सकता है, में शुरुआती मॉडल से ही अंतर्निहित ब्लूटूथ होता है। हालांकि, अगर macOS पर ब्लूटूथ काम नहीं कर रहा है, तो यूज़र्स को क्रॉस-डिवाइस ऑथेंटिकेशन के साथ समस्याओं का सामना करना पड़ सकता है और उन्हें अपनी सेटिंग्स को ठीक करने या फॉलबैक विधि पर वापस जाने की आवश्यकता हो सकती है। Safari चलाने वाले iPhones में अपनी स्थापना के बाद से ही ब्लूटूथ अंतर्निहित है।
हालांकि, Firefox एक महत्वपूर्ण मुद्दा है क्योंकि यह Windows डिवाइस पर लोकप्रिय है। यदि कोई यूज़र Firefox पर है और CDA का उपयोग करना चाहता है, तो रिलाइंग पार्टी विश्वसनीय रूप से यह निर्धारित नहीं कर सकती है कि ब्लूटूथ उपलब्ध है या नहीं, क्योंकि वेब ब्लूटूथ API लागू नहीं किया गया है। इसके परिणामस्वरूप एक खराब यूज़र एक्सपीरियंस हो सकता है, जिसमें यूज़र्स संभावित रूप से कुछ बिंदुओं पर अटक जाते हैं और यह नहीं जानते कि क्या करना है।
जैसा कि हमने पिछले ब्लॉगों में भी देखा है, Windows डिवाइस पासकी अपनाने के मामले में पीछे हैं (State of Passkeys भी देखें)। आइए देखें कि ब्लूटूथ की उपलब्धता कितनी आम है।
Windows 10 में ब्लूटूथ की कोई सख्त आवश्यकता नहीं है, लेकिन अधिकांश आधुनिक लैपटॉप और डेस्कटॉप ब्लूटूथ क्षमताओं के साथ आते हैं। हालांकि, यूज़र ने इसे बंद कर दिया हो सकता है, या यह कुछ कॉन्फ़िगरेशन में उपलब्ध नहीं हो सकता है, खासकर कस्टम-निर्मित डेस्कटॉप पर।
Windows 11, Windows 10 के समान, ब्लूटूथ को अनिवार्य नहीं करता है। हालांकि, अधिक एकीकृत और आधुनिक हार्डवेयर की ओर रुझान का मतलब है कि अधिकांश Windows 11 संगत डिवाइस में ब्लूटूथ क्षमताएं होने की संभावना है। फिर भी, यूज़र्स इसे अक्षम कर सकते हैं, जो CDA कार्यान्वयन को प्रभावित करता है।
निम्नलिखित तालिका में आप देख सकते हैं कि क्या आप यह निर्धारित कर सकते हैं कि कोई डेस्कटॉप डिवाइस ब्लूटूथ-तैयार है और इस प्रकार CDA क्लाइंट के रूप में उपयोग किया जा सकता है:
ऑपरेटिंग सिस्टम | ब्लूटूथ हार्डवेयर-सपोर्ट | ब्राउज़र ब्लूटूथ डिटेक्शन | |||
---|---|---|---|---|---|
Chrome | Edge | Firefox | Safari | ||
Windows 10 | कम | ✅ | ✅ | ❌ | ❌ |
Windows 11 | मध्यम | ✅ | ✅ | ❌ | ❌ |
macOS | उच्च | ✅ | ❌ | ❌ | ❌ |
ध्यान रखें कि भले ही आपका हार्डवेयर ब्लूटूथ-तैयार हो, ब्लूटूथ कार्यक्षमता यूज़र द्वारा बंद की जा सकती है। जब ब्लूटूथ बंद होता है, तब भी यूज़र CDA का उपयोग कर सकता है क्योंकि यूज़र अभी भी इसे सक्रिय करने का विकल्प चुन सकता है, जो Windows और Mac के लिए काम करता है: ब्लूटूथ चालू करने के लिए macOS का अनुरोध
ब्लूटूथ चालू करने के लिए Windows 11 का अनुरोध
ब्लूटूथ उपलब्धता की जानकारी विशेष रूप से Windows 10 और Windows 11 पर दिलचस्प है, जहां ब्लूटूथ सपोर्ट कम है और क्रॉस-डिवाइस ऑथेंटिकेशन की बहुत अधिक संभावना है (एक पासकी-आधारित लॉगिन में)। हाल के macOS डिवाइस सभी में ब्लूटूथ के लिए सपोर्ट है। इन macOS डिवाइस में सीधे iCloud कीचेन में संग्रहीत पासकीज़ तक पहुंच भी हो सकती है, इसलिए वे चिंता का विषय नहीं हैं।
Windows 10 और Windows 11 पर: यह पता लगाने के लिए getAvailability()
का उपयोग करें कि क्या ब्लूटूथ काम कर सकता है। यदि यूज़र के पास केवल गैर-Windows पासकीज़ हैं, तो आप तुरंत अन्य ऑथेंटिकेशन विकल्पों पर वापस जा सकते हैं।
ऐसी स्थिति में जहां केवल हाइब्रिड पासकीज़ उपलब्ध हैं, पासकी ऑथेंटिकेशन को ट्रिगर करने से सफल ऑथेंटिकेशन नहीं होगा, बल्कि यूज़र के लिए एक डेड-एंड होगा। Windows 10 और Windows 11 पर अन्य सभी ब्राउज़रों के लिए, दुर्भाग्य से, यह पता लगाने का कोई अन्य तरीका नहीं है कि CDA के लिए सपोर्ट है या नहीं।
वेब ब्लूटूथ API ब्लूटूथ क्षमताओं के माध्यम से पासकी ऑथेंटिकेशन को बढ़ाने के लिए एक शक्तिशाली उपकरण का प्रतिनिधित्व करता है। इस API को समझकर और उसका लाभ उठाकर, डेवलपर्स अधिक सुरक्षित और यूज़र-फ्रेंडली ऑथेंटिकेशन विधियां बना सकते हैं। हालांकि, उन्हें इसकी सीमाओं को भी नेविगेट करना होगा और विभिन्न ब्राउज़रों और डिवाइसों में एक सहज यूज़र एक्सपीरियंस बनाए रखने के लिए मजबूत फॉलबैक तंत्र सुनिश्चित करना होगा।
इस ब्लॉग पोस्ट के साथ, हमने तीन मुख्य प्रश्नों का उत्तर दिया है:
getAvailability()
, getDevices()
और requestDevice()
जैसे फ़ंक्शन को कॉल करके वेब ब्लूटूथ API का उपयोग करें।वेब ब्लूटूथ API और उदाहरणों के संग्रह के बारे में अधिक जानकारी के लिए, कृपया यहां क्लिक करें।
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
Table of Contents