لكن هناك ملاحظة صغيرة واحدة: في Safari على نظام Mac، تعد المصادقة عبر الويب ميزة مخصصة للمطورين فقط، وهي معطّلة افتراضياً. عند تمكينها، تعمل بشكل جيد. لكن من المرجح أن نعرض رسالة أو تحذيراً عندما لا تكون المصادقة عبر الويب مفعّلة. حالياً، في إصدار Safari الافتراضي، لا يوجد أي مؤشر في واجهة المستخدم على أن عملية التسجيل لن تعمل (يظهر خطأ في وحدة التحكم):
صحيح، ولكن في هذه الحالة، يُعدّ ذلك جزءًا طبيعيًا من العمل في Discourse، لذا سنغطي التكلفة. نعتذر إذا لم يكن الأمر واضحًا من قبل، ونأمل أن يكون الآن واضحًا.
اقتراح واحد لتصميم “تدفق تسجيل الدخول” - يحتوي WebAuthn على شعار رسمي يمكن استخدامه بدلاً من صورة البصمة العامة. بالإضافة إلى البصمة، تُعد التعرف على الوجه، ونمط السحب، أو الرمز الشخصي خيارات شائعة للتحقق من هوية المستخدم أيضًا.
شكرًا لك على ملاحظاتك يا Rafe، سنحتاج حينها إلى إضافة الخوارزمية الإضافية هنا. وشكرًا أيضًا على رابط الشعار الرسمي! كانت فكرتي عند تعيين خوارزمية واحدة فقط هي إضافة الحد الأدنى من الخوارزميات المدعومة لجعل الأمور تعمل في الإصدار V1، حيث لم أكن متأكدًا من الفروق الدقيقة بين جميع الخوارزميات، وقد تم استخدام ES256 في جميع الأمثلة التي تمكنت من الوصول إليها.
أما بالنسبة لسبب عدم استخدامي للمكتبة (gem) في ذلك الوقت، فقد عانيت كثيرًا من هذا القرار، وكنت أعلم أنني سأُسأل عنه في وقت ما. لقد قرأت بالتأكيد الكثير من الكود في المكتبة لفهم التطبيق بشكل أفضل. كانت الأسباب الرئيسية هي:
عدم الرغبة في إضافة اعتماد إضافي إلى Discourse. فكل اعتماد gem يضيف عبئًا إضافيًا، بغض النظر عن مدى روعة الكود في تلك المكتبة.
الرغبة في فهم كيفية عمل جزء أمني حاسم مثل هذا في Discourse. اعتقدت أن وجود الكود داخل نواة Discourse سيجعل الأمور أكثر وضوحًا وأسهل للتوسع، دون وجود “صندوق أسود” كما يُقال. (ليس ذلك انتقادًا للمكتبة نفسها أو لتعقيدها، فأنا أدرك أن الناس يمكنهم ببساطة مراجعة الكود هناك، وقد وجدت أنه من السهل جدًا متابعة ما يحدث).
عدم الرغبة في إضافة أكثر من الحد الأدنى من الكود المطلوب لتشغيل Webauthn، على سبيل المثال، تركت الاستيثاق (attestation) خارج تطبيقنا الأولي. لم أعتقد أن هناك فائدة كبيرة في إضافة مجموعة أدوات كاملة عندما كنا نحتاج فقط إلى مفتاح ربط.
ومع ذلك، قد يكون هذا قرارًا خاطئًا من جانبي، وإذا دخلنا في الإصدار V2، V3 وما إلى ذلك من دعم Webauthn مع الاستيثاق، وخوارزميات مدعومة أكثر، وما شابه، فقد يصبح الأمر مرهقًا جدًا بالنسبة لنا لنصبح “خبراء في Webauthn” كما يُقال، وفي تلك النقطة أعتقد أننا يمكننا إعادة تقييم استخدام المكتبة.
من المؤسف أن أجهزة iPhone تحتاج إلى جهاز تابع لطرف ثالث لذلك. أتمنى أن تتضمن iOS++ ذلك مدمجًا مع مصادقة الجهاز ورقم الآمن. مثل Windows وMac OS وAndroid.
سأقوم بالنظر في هذا الأمر، لكن أفضل تخميني هو أن هناك خطأً بسيطًا في واجهة المستخدم لقائمة المستخدمين إذا كانت قسم المصادقة الثنائية الفعلي في الواجهة يعرض كل شيء بشكل صحيح. شكرًا لتقريرك!