Get your free and exclusive +30-page Authentication Analytics Whitepaper
Back to Overview

إمكانيات عميل WebAuthn

اكتشف إمكانيات عميل WebAuthn من المستوى 3 عبر getClientCapabilities() لتحسين تكامل مفاتيح المرور، وتعزيز تجربة المستخدم، وتبسيط تدفقات المصادقة.

Vincent Delitz
Vincent Delitz

Created: August 8, 2025

Updated: April 14, 2026

webauthn client capabilities

See the original blog version in English here.

PasskeysCheatsheet Icon

Looking for a dev-focused passkey reference? Download our Passkeys Cheat Sheet. Trusted by dev teams at Ally, Stanford CS & more.

Get Cheat Sheet
Key Facts
  • تتيح دالة getClientCapabilities() في المستوى الثالث من WebAuthn للمتصفحات عرض قائمة بالميزات المدعومة، مما يسمح للمطورين بتخصيص تدفقات المصادقة بناءً على إمكانيات العميل المتاحة.
  • كان Safari 17.4 أول متصفح يدعم getClientCapabilities(). ومنذ ذلك الحين، أضافت متصفحات Chrome 133 و Edge 133 و Firefox 135 دعمها لهذه الميزة.
  • تقوم ميزة conditionalCreate بإنشاء مفاتيح المرور (Passkeys) تلقائياً أثناء الملء التلقائي لكلمات المرور، مما يعزز الاعتماد عليها دون تدخل المستخدم. حتى أكتوبر 2024، يدعم Apple Passwords فقط هذه الميزة.
  • تقوم ميزة signalAllAcceptedCredentials بمزامنة القائمة الكاملة لبيانات الاعتماد بين الطرف المعتمد (Relying Party) والمصدق (Authenticator). يجب على الأطراف المعتمدة استدعاؤها بشكل دوري، مثل عند كل تسجيل دخول، لإبقاء مفاتيح المرور محدثة.
  • تتيح ميزة hybridTransport المصادقة عبر أجهزة متعددة باستخدام رمز الاستجابة السريعة (QR) والبلوتوث، مما يسمح للمستخدمين بالمصادقة على أجهزة سطح المكتب باستخدام مفتاح مرور مخزن على هواتفهم الذكية.

1. مقدمة#

WebAuthn هو المعيار الحديث الذي يقف وراء مفاتيح المرور (Passkeys). بدلاً من الاعتماد على كلمات المرور التقليدية، فإنه يستفيد من تشفير المفتاح العام، مما يتيح للمستخدمين المصادقة باستخدام مفاتيح المرور، والتي يمكن أن تتضمن القياسات الحيوية (مثل بصمات الأصابع أو التعرف على الوجه) أو مفاتيح الأمان المادية. هذا التحول لا يعزز الأمان فحسب، بل يحسن أيضاً من تجربة المستخدم من خلال التخلص من الحاجة إلى إدارة كلمات المرور.

يقدم معيار المستوى الثالث من WebAuthn إمكانيات عميل جديدة (والتي يمكن استردادها عبر واجهة برمجة تطبيقات المتصفح getClientCapabilities())، بهدف تزويد المطورين والمنصات بمزيد من التحكم والمرونة عند تنفيذ مفاتيح المرور. تجلب هذه التحديثات تحسينات تبسط عملية دمج مفاتيح المرور عبر الأجهزة، والمتصفحات، والمنصات، مما يضمن رحلة مستخدم أكثر سلاسة واتساقاً.

في هذا المقال، سنجيب على الأسئلة التالية:

  1. ما هي إمكانيات عميل WebAuthn؟
  2. ما هي إمكانيات عميل WebAuthn المتاحة؟
  3. كيف تعمل إمكانيات عميل WebAuthn على تحسين تطبيقات مفاتيح المرور؟
  4. لماذا تعتبر إمكانيات عميل WebAuthn مهمة للمطورين ومديري المنتجات؟

بنهاية هذا المقال، ستفهم كيف يمكن أن تساعدك هذه الميزات في إنشاء تدفقات مصادقة سلسة وآمنة تتماشى مع توقعات المستخدمين العصرية.

2. ما هي إمكانيات عميل WebAuthn؟#

إمكانيات عميل WebAuthn هي مجموعة من الميزات التي تتيح للمتصفحات والمنصات التواصل بشأن أنواع وظائف WebAuthn التي تدعمها. بعبارات بسيطة، تعمل كـ "قائمة ميزات" تتيح لمواقع الويب معرفة طرق المصادقة والإعدادات المتاحة على جهاز المستخدم. هذا يمكن المطورين من تخصيص تدفقات المصادقة بناءً على إمكانيات العميل، مما يضمن تجربة مستخدم أكثر سلاسة وأماناً.

على سبيل المثال، إذا أشار المتصفح إلى أنه يدعم المصادقة البيومترية (مثل Touch ID)، فيمكن للمطورين تصميم تدفقات تسجيل الدخول الخاصة بهم لتقديم خيار تسجيل الدخول ببصمة الإصبع للمستخدمين. وعلى العكس، إذا كان المتصفح لا يدعم ميزات معينة، يمكن للمطورين توفير خيارات بديلة، مثل كلمة المرور أو رمز SMS OTP. من الناحية العملية، يمكن أن تظهر مسارات الإمكانيات غير المدعومة أو المتقطعة كأخطاء عامة في المتصفح، لذا يجب على فرق العمل تعيين هذه النتائج لتصنيف صريح لأخطاء WebAuthn.

3. إمكانيات عميل WebAuthn المقدمة في معيار WebAuthn المستوى 3#

يقدم معيار WebAuthn المستوى 3 العديد من إمكانيات العميل الجديدة التي تجعل تطبيقات مفاتيح المرور أكثر تنوعاً وسهولة في الاستخدام. تم تقديم الدعم الأول لاستدعاء واجهة برمجة التطبيقات getClientCapabilities() في Safari 17.4.

لاكتشاف الدعم في المتصفح، يمكن أن تكون الشيفرة التالية مفيدة:

// Check if PublicKeyCredential is supported in the current browser if (typeof PublicKeyCredential === "undefined") { console.log("PublicKeyCredential is not supported in this browser."); } // Check if getClientCapabilities method exists on PublicKeyCredential if (typeof PublicKeyCredential.getClientCapabilities === "function") { try { let capabilities = await PublicKeyCredential.getClientCapabilities(); console.log(capabilities); } catch (error) { console.error("Error getting client capabilities:", error); } } else { console.log("getClientCapabilities is not supported in this browser"); }

4. getClientCapabilities()#

تتيح دالة getClientCapabilities() لمواقع الويب والتطبيقات الاستعلام من العميل (مثل المتصفح أو الجهاز) لتحديد ميزات WebAuthn التي يدعمها. من خلال فهم إمكانيات العميل، يمكن للمطورين تحسين تدفقات المصادقة للاستفادة من الميزات المتاحة، مثل المصادقة البيومترية، وتقديم طرق بديلة في حالة غياب بعض الإمكانيات.

Substack Icon

Subscribe to our Passkeys Substack for the latest news.

Subscribe

إليك نظرة فاحصة على إمكانيات عميل WebAuthn وكيفية تأثيرها على تكامل مفاتيح المرور:

4.1 conditionalCreate#

تتيح ميزة conditionalCreate الإنشاء التلقائي لمفاتيح المرور بناءً على شروط محددة. قد يستخدم أحد التطبيقات هذه الإمكانية لإنشاء مفتاح مرور تلقائياً أثناء الملء التلقائي لكلمات المرور إذا كان مدير كلمات المرور يدعم ذلك. تساعد هذه الميزة في تعزيز اعتماد مفاتيح المرور والاستخدام اللاحق عن طريق نقل المستخدمين تلقائياً من كلمات المرور إلى مفاتيح المرور.

4.2 conditionalGet#

على غرار conditionalCreate، تقوم conditionalGet بتشغيل عمليات تسجيل الدخول بمفاتيح المرور تلقائياً. هذا مفيد في السيناريوهات التي يجب فيها تفعيل أفضل تجربة مستخدم لمفاتيح المرور (UX)، مما يجعل تسجيل الدخول ليس فقط بدون كلمة مرور ولكن أيضاً بدون اسم مستخدم (حيث ينقر المستخدمون ببساطة على مفتاح المرور المحدد في نافذة منبثقة أو قائمة منسدلة ليتم مصادقتهم). باستخدام هذه الإمكانية، يمكن للمطورين ضمان حدوث مصادقة مفتاح المرور فقط في الأوقات المناسبة، مما يقلل من المطالبات غير الضرورية ويعزز تجربة المستخدم.

4.3 hybridTransport#

تضمن ميزة hybridTransport إمكانية استخدام مفاتيح المرور عبر أجهزة مختلفة، مما يتيح مصادقة سلسة عبر الأجهزة (عبر رموز QR والبلوتوث). على سبيل المثال، يمكن للمستخدم استخدام مفتاح مرور مخزن على هاتفه الذكي لتسجيل الدخول إلى خدمة على جهاز سطح المكتب الخاص به. تتيح هذه الإمكانية للمستخدمين المصادقة بأمان دون الحاجة إلى نقل مفاتيح المرور يدوياً أو الاعتماد على طرق تسجيل الدخول التقليدية لكل جهاز، مما يعزز تجربة مصادقة موحدة.

4.4 passkeyPlatformAuthenticator#

توفر المصدقات (Authenticators) المدمجة في المنصة، مثل Windows Hello أو Face ID أو Touch ID، تجربة أسرع وأكثر سلاسة وأماناً لمفاتيح المرور من خلال تمكين المستخدمين من المصادقة باستخدام القياسات الحيوية أو أي طريقة أخرى مدمجة في الجهاز (مثل نمط PIN).

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

4.5 userVerifyingPlatformAuthenticator#

تضمن ميزة userVerifyingPlatformAuthenticator أن مصادقة مفتاح المرور تتضمن التحقق من المستخدم، مثل مسح بصمة الإصبع أو التعرف على الوجه النشط، مما يوفر طبقة أمان إضافية.

4.6 relatedOrigins#

تسمح إمكانية relatedOrigins بالمصادقة السلسة عبر نطاقات مختلفة مملوكة لنفس المؤسسة (مثل amazon.com و amazon.de). على سبيل المثال، إذا كانت الشركة تدير نطاقات متعددة أو لديها نطاقات فرعية مختلفة، فيمكن للمستخدمين تسجيل الدخول مرة واحدة والوصول إلى جميع الممتلكات دون إعادة المصادقة على كل منها. هذه الإمكانية تبسط تجربة المستخدم وتقلل الاحتكاك، وهي ذات قيمة خاصة للشركات في البيئات الدولية أو ذات المنصات متعددة الخدمات.

4.7 signalAllAcceptedCredentials#

توفر دالة signalAllAcceptedCredentials(options) القائمة الكاملة لمعرفات بيانات اعتماد WebAuthn لمستخدم معين. يجب على الأطراف المعتمدة في WebAuthn استخدام هذه الدالة بدلاً من signalUnknownCredential() عندما يكون المستخدم مصادقاً، حيث لا يوجد خطر من تسريب الخصوصية. توفر هذه الطريقة نظرة شاملة لبيانات اعتماد المفتاح العام للمستخدم، بما في ذلك أي تغييرات حديثة قد لا تكون قد تم تحديثها على المصدقات (Authenticators) المتصلة حالياً.

دعونا نلقي نظرة على مثال. مستخدم (بـ userId: A) لديه مفتاحا مرور بمعرفات بيانات اعتماد مرمزة بصيغة Base64URL إلى X و Y. ثم قام المستخدم بحذف مفتاح المرور X في إعدادات الحساب الخاصة بخدمة الويب (example.com) (بحيث يتم حذف المفتاح العام). الآن، قم بتشغيل الشيفرة التالية:

PublicKeyCredential.signalAllAcceptedCredentials({ rpId: "example.com", userId: "A", // WebAuthn User Handle, Base64URL. allAcceptedCredentialIds: ["Y"], });

إذا كان المصدق (Authenticator) متاحاً في وقت تنفيذ الشيفرة أعلاه، فإنه يقوم بحذف أو إخفاء مفتاح المرور X من عمليات المصادقة المستقبلية. ومع ذلك، قد لا يكون المصدق متصلاً في وقت التنفيذ، لذا يوصى بأن تقوم الأطراف المعتمدة بتنفيذ هذه الشيفرة بشكل دوري، على سبيل المثال عند كل تسجيل دخول.

مفاتيح المرور غير الموجودة في allAcceptedCredentialIds ستتم إزالتها أو إخفاؤها، وربما لا يمكن التراجع عن ذلك. لذا، من المهم للأطراف المعتمدة الانتباه إلى عدم إزالة معرفات بيانات الاعتماد الصالحة لـ WebAuthn من القائمة أبداً. إذا تمت إزالة معرّف بيانات الاعتماد بالخطأ، يجب على الطرف المعتمد (Relying Party) إدراجه على الفور في استدعاء signalAllAcceptedCredentials(options) آخر في أقرب وقت ممكن لـ "إظهار" مفتاح المرور. إذا تم حذف مفتاح المرور بدلاً من إخفائه، فلا يمكن إصلاح الأمر بسهولة.

Debugger Icon

Want to experiment with passkey flows? Try our Passkeys Debugger.

Try for Free

4.8 signalCurrentUserDetails#

تشير دالة signalCurrentUserDetails(options) إلى الاسم الحالي للمستخدم واسم عرض WebAuthn الخاص به. عند استدعاء signalCurrentUserDetails(options)، يتبع العميل مجموعة من الخطوات المحددة لتنفيذ هذا الإجراء.

دعونا نرى مثالاً. يقوم مستخدم لديه معرّف المستخدم (User ID) A في WebAuthn بتحديث اسمه في إعدادات الحساب لموقع ويب (example.com). بعد ذلك، يمكن لـ الطرف المعتمد تشغيل الشيفرة التالية:

PublicKeyCredential.signalCurrentUserDetails({ rpId: "example.com", userId: "A", // user ID, Base64URL. name: "New user name", displayName: "New display name", });

سيقوم المصدق بعد ذلك بتحديث البيانات الوصفية لمفتاح المرور المحفوظ محلياً. الفائدة الكبيرة هي أنه في طلبات واجهة المستخدم الشرطية (Conditional UI) أو الملء التلقائي لمفاتيح المرور المستقبلية، تعرض قائمة الاختيار أو القائمة المنسدلة لواجهة المستخدم الشرطية الاسم المحدث واسم عرض WebAuthn.

4.9 signalUnknownCredential#

تشير دالة signalUnknownCredential(options) إلى أن معرّف بيانات الاعتماد لـ WebAuthn غير معروف للطرف المعتمد (Relying Party)، على سبيل المثال، إذا تم حذف مفتاح المرور بواسطة المستخدم. على عكس signalAllAcceptedCredentials(options)، لا تتطلب هذه الطريقة توفير القائمة الكاملة لمعرفات بيانات الاعتماد المقبولة ومعرّف المستخدم (User Handle) في WebAuthn، مما يمنع تسرب الخصوصية المحتمل للمتصلين غير المصادق عليهم.

دعونا نرى مثالاً. يقوم المستخدم بحذف مفتاح مرور بمعرّف بيانات الاعتماد X في إعدادات حساب موقع ويب (example.com) (بحيث يتم حذف المفتاح العام). ومع ذلك، لا يزال المفتاح الخاص متاحاً على جهاز المستخدم. هذا يعني أنه في طلبات تسجيل الدخول المستقبلية عبر واجهة المستخدم الشرطية (Conditional UI) أو الملء التلقائي لمفاتيح المرور (بقائمة allowCredentials فارغة)، لا يزال من الممكن تحديد مفتاح المرور. ومع ذلك، ستفشل محاولة تسجيل الدخول لأن المفتاح العام قد تم حذفه بالفعل، لذلك يجب على الطرف المعتمد تشغيل:

PublicKeyCredential.signalUnknownCredential({ rpId: "example.com", credentialId: "X", // credential ID the user just tried, Base64URL });

سيقوم المصدق بعد ذلك بحذف أو إخفاء مفتاح المرور ذي معرّف بيانات الاعتماد X من عمليات المصادقة المستقبلية.

5. توفر إمكانيات عميل WebAuthn#

نظراً لأن معيار WebAuthn المستوى 3 لا يزال في حالة مسودة، فإن اعتماد إمكانيات العميل الجديدة هذه ليس واسع الانتشار بالكامل بعد. بدأت المتصفحات المختلفة في تنفيذ هذه الميزات تدريجياً، لكن الدعم يختلف. يوجد أدناه نظرة عامة محدثة عن التوفر عبر المتصفحات الرئيسية المشار إليها أعلاه:

المتصفحالإصدار الداعم لإمكانيات العميلملاحظات
Chrome133Chrome Platform Status & Chromium Bug Tracker
Safari17.4+أول متصفح يدعم getClientCapabilities(). حتى أكتوبر 2024، يدعم Safari ميزات مثل conditionalCreate و conditionalMediation و hybridTransport و passkeyPlatformAuthenticator و userVerifyingPlatformAuthenticator.
Edge133يعتمد على Chromium 133. Chromium Bug Tracker
Firefox135بدأت Mozilla في تنفيذ إمكانيات عميل WebAuthn المستوى 3 في متصفح Firefox 135 والإصدارات الأحدث.

من المرجح أن تتسارع وتيرة الاعتماد مع نضوج المستوى 3 ودعم المزيد من المتصفحات لهذه الميزات. إذا كنت تريد معرفة عدد المستخدمين الذين يمكنهم الاستفادة من getClientCapabilities() في الوقت الحالي، يمكنك التحقق من بيانات العالم الحقيقي باستخدام State of Passkeys المجانية. راقب ملاحظات إصدار المتصفح والوثائق ذات الصلة للتخطيط لتوافق أوسع مع تطور الميزات.

StateOfPasskeys Icon

Want to find out how many people use passkeys?

View Adoption Data

6. نصائح للمطورين#

كمطور، قد تسأل نفسك ماذا يعني اكتشاف قدرات عميل WebAuthn الجديدة هذه بالنسبة لك وكيف يجب استخدامها في تطبيقك. فيما يلي تجد توصيات لاستخدامها.

ومع ذلك، كن على دراية بأن ليست كل المتصفحات تدعم حتى الآن استدعاء واجهة برمجة التطبيقات getClientCapabilities() (حتى نوفمبر 2024). يتوفر حل مؤقت (polyfill) هنا، يمكن استخدامه حتى تلحق جميع المتصفحات بالركب.

6.1 استدعاء getClientCapabilities() مبكراً#

استخدم getClientCapabilities() مبكراً في الكود الخاص بك لاكتشاف ميزات العميل المدعومة في بداية تحميل الصفحة أو تدفق المصادقة. سيسمح لك ذلك بتخصيص التجربة ديناميكياً، وتوفير ميزات مفاتيح المرور التي تعمل على الجهاز أو المتصفح، مثل الدفع نحو مصادقة المنصة عند دعمها أو تقديم طرق بديلة (مثل رسائل SMS OTP أو مفاتيح الأمان المادية) إذا لم تكن مدعومة.

6.2 في التطبيقات المعتمدة على كلمات المرور، عزز مفاتيح المرور عبر conditionalCreate#

إذا أضفت مفاتيح مرور إلى موقع ويب أو تطبيق يستخدم حالياً كلمات المرور، فيمكن أن تكون ميزة conditionalCreate دافعاً حقيقياً لاعتماد مفاتيح المرور. في الخلفية، وأثناء الملء التلقائي لكلمات المرور باستخدام مدير بيانات اعتماد مناسب (فقط Apple Passwords يدعم هذا حتى أكتوبر 2024)، يتم إنشاء مفتاح مرور تلقائياً وسيكون المفضل في عمليات الملء التلقائي المستقبلية.

6.3 استخدم ConditionalGet كلما أمكن#

للحصول ليس فقط على نسبة عالية من اعتماد مفاتيح المرور، ولكن أيضاً على استخدام عالٍ في تسجيل الدخول بمفاتيح المرور، حاول التحقق مما إذا كان الجهاز أو المتصفح يمكنه استخدام واجهة المستخدم الشرطية (Conditional UI) أو الملء التلقائي لمفاتيح المرور عن طريق التحقق من conditionalGet. بهذه الطريقة ستحث المستخدمين على استخدام مفتاح المرور الذي تم إنشاؤه لتسجيل الدخول، حيث يتم اقتراحه بشكل استباقي بواسطة نظام التشغيل أو المتصفح ويتطلب جهداً أقل من الملء التلقائي لكلمة المرور.

6.4 استخدم hybridTransport في الأنظمة التي تركز على الجوال#

استخدم hybridTransport لتمكين المصادقة عبر الأجهزة (عبر رمز الاستجابة السريعة (QR) والبلوتوث)، مما يسمح للمستخدمين بتسجيل الدخول بسلاسة من هواتفهم الذكية، حتى إذا كانوا يصلون إلى خدمتك على جهاز سطح مكتب.

7. الخاتمة#

تمثل إمكانيات عميل WebAuthn خطوة مهمة إلى الأمام في معالجة الفجوات الموجودة حالياً في مفاتيح المرور. في هذا المقال، تناولنا أسئلة رئيسية حول إمكانيات عميل WebAuthn:

  1. ما هي إمكانيات عميل WebAuthn؟ شرحنا كيف تتيح هذه الميزات للمتصفحات والمنصات الإشارة إلى دعمها لوظائف معينة، مما يمنح المطورين مزيداً من التحكم في تدفقات المصادقة.
  2. ما هي إمكانيات عميل WebAuthn المتاحة؟ قدمنا لمحة عامة عن الإمكانيات الجديدة المقدمة في معيار المستوى 3، بما في ذلك getClientCapabilities و conditionalCreate و hybridTransport وغيرها.
  3. كيف تعمل إمكانيات عميل WebAuthn على تحسين تطبيقات مفاتيح المرور؟ ناقشنا كيف تعمل هذه الإمكانيات على تبسيط التكامل وتعزيز الاستخدام عبر الأجهزة وتحسين الأمان.
  4. لماذا تعتبر إمكانيات عميل WebAuthn مهمة للمطورين؟ تساعد هذه الميزات في إنشاء تجارب مصادقة سلسة وآمنة تتماشى مع توقعات المستخدمين العصرية، مما يجعل التنفيذ أسهل وأكثر فعالية.

نحن نشجعك على استكشاف ميزات المستوى الثالث من WebAuthn الجديدة والبقاء على اطلاع دائم باعتمادها عبر المتصفحات. إذا كنت تتطلع إلى تنفيذ مفاتيح المرور والاستفادة من هذه الإمكانيات المتقدمة، تواصل معنا للحصول على إرشادات ودعم الخبراء.

الأسئلة الشائعة#

كيف أستخدم getClientCapabilities() لتحسين عملية تسجيل الدخول باستخدام مفاتيح المرور؟#

استدعِ getClientCapabilities() مبكراً أثناء تحميل الصفحة أو تدفق المصادقة لاكتشاف الميزات المدعومة ديناميكياً. يتيح لك ذلك تقديم المصادقة عبر المنصة عند دعمها، أو توفير بدائل مثل رموز SMS OTP أو مفاتيح الأمان عند عدم توفرها.

ما الفرق بين signalUnknownCredential و signalAllAcceptedCredentials في WebAuthn؟#

تتطلب signalAllAcceptedCredentials القائمة الكاملة لمعرفات بيانات الاعتماد الصالحة ومعرف مستخدم WebAuthn، لذا يجب استدعاؤها فقط عندما يكون المستخدم مصادقاً لتجنب تسريب الخصوصية. تشير signalUnknownCredential إلى معرف بيانات اعتماد واحد غير معروف دون الحاجة إلى القائمة الكاملة، مما يجعل استدعاءها آمناً في السيناريوهات غير المصادق عليها مثل بعد محاولة تسجيل دخول فاشلة.

كيف تساعد ميزة relatedOrigins الشركات التي تدير نطاقات متعددة؟#

تتيح ميزة relatedOrigins المصادقة السلسة عبر النطاقات المختلفة المملوكة لنفس المؤسسة، على سبيل المثال amazon.com و amazon.de. يمكن للمستخدمين تسجيل الدخول مرة واحدة والوصول إلى جميع المواقع دون إعادة المصادقة على كل نطاق، مما يقلل من الاحتكاك في البيئات الدولية أو متعددة الخدمات.

ماذا يجب أن أفعل إذا لم تكن getClientCapabilities() مدعومة بعد في بعض متصفحات المستخدمين؟#

اعتباراً من نوفمبر 2024، لا تدعم جميع المتصفحات getClientCapabilities()، لذا يمكنك استخدام الحلول المؤقتة (polyfill) المتاحة في github.com/MasterKale/webauthn-polyfills. من المتوقع أن يتسارع الاعتماد مع نضوج معيار WebAuthn المستوى 3، حيث تدعمها بالفعل متصفحات Chrome 133 و Edge 133 و Firefox 135 و Safari 17.4.

See what's really happening in your passkey rollout.

Explore the Console

Share this article


LinkedInTwitterFacebook