استخدام مكون إضافي OAuth لـ Auth0 بشكل أكثر سلاسة

أحاول حاليًا جلب المصادقة Auth0 إلى تطبيقي Discourse. لقد اتبعت بشكل أساسي سير العمل هنا وتمكنت من تشغيل الأشياء.

ومع ذلك، لست راضيًا تمامًا عن ذلك لعدة أسباب:

  1. بعد النقر على تسجيل الدخول/الاشتراك، يوجد فقط زر “مع Auth0”. أريد أن تظهر لوحة تسجيل الدخول/الاشتراك Auth0 فقط بعد النقر على تسجيل الدخول/الاشتراك في أعلى صفحة Discourse.
  2. بعد المصادقة مع Auth0، لا ينبغي للأشخاص إنشاء مستخدم جديد، بدلاً من ذلك يجب أن يكون كل شيء على ما يرام بسبب Auth0.
  3. يجب أن تتم معالجة مصادقة البريد الإلكتروني عبر Auth0، وليس عبر Discourse.
  4. إذا قمت بتسجيل الدخول بالفعل عبر Auth0 في هذا المتصفح، ربما بنفس التطبيق من Auth0، في وحدة أخرى من منصتنا، فيجب تسجيل دخولك تلقائيًا.
  5. لا تزال هناك إمكانية لتسجيل الدخول كمستخدم مسؤول، حيث قد يكون هذا أكثر صعوبة بعد تنفيذ النقطة رقم 1.

هل يمكنك مساعدتي في إعداد كل شيء أو على الأقل أجزاء منه؟

أعتقد أنه يمكنك التحقق من هذا الإعداد في Discourse auth_overrides_email لهذا الغرض.

ويمكنك استخدام هذا الإعداد لهذا الغرض: auth_skip_create_confirm

عند التسجيل عبر المصادقة الخارجية، تخطى نافذة إنشاء الحساب المنبثقة. يُفضل استخدامه مع auth_overrides_email و auth_overrides_username و auth_overrides_name.

يوجد أيضًا إعداد auth_immediately الذي قد يحقق ما تريده أيضًا:

إعادة التوجيه تلقائيًا إلى نظام تسجيل الدخول الخارجي دون تفاعل المستخدم. يسري هذا فقط عندما يكون login_required صحيحًا، وهناك طريقة مصادقة خارجية واحدة فقط.

يمكنك زيارة /u/admin-login لتجاوز OAuth.

3 إعجابات

شكراً جزيلاً على مساهمتك، @blake :slight_smile:

هل لديك أيضاً بعض المساهمات للنقاط 1 و 4 أم أنها أكثر صعوبة؟

أعتقد أن هذه الإعدادات auth_immediatley و auth_skip_create_confirm ستعالج النقطتين 1 و 4. هل يمكنك تمكينها ومعرفة ما إذا كان ذلك سيحسن الأمور؟

@blake شكراً جزيلاً على مساهمتك.

لقد قمت بكل شيء كما هو موضح في صفحة الإعداد بالإضافة إلى اقتراحاتك. ومع ذلك، عندما أحاول تسجيل الدخول، يظهر هذا:

بينما في https://community.auth0.com/ هذا ما يظهر عند محاولة تسجيل الدخول (وهو ما هو مقصود لموقعي أيضاً):

علاوة على ذلك، حاولت تسجيل الدخول باستخدام بريدي الإلكتروني التجريبي وما زال يتطلب مصادقة البريد الإلكتروني على الرغم من أن البريد الإلكتروني تم التحقق منه في Auth0:

هل تعرف كيف يمكنني تغييره وفقًا لذلك؟

جرب تعطيل إعدادات تمكين تسجيل الدخول المحلي. يجب أن يؤدي هذا إلى إزالة القدرة على تسجيل الدخول، تاركًا لمستخدميك الخيار الوحيد لتسجيل الدخول باستخدام OAuth2.

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

مرحباً @blake
شكراً على الأفكار. لقد أحرزت بعض التقدم ولكن للأسف لا تزال هناك مشكلة طفيفة في تسجيل الدخول. كلما ضغطت على زر تسجيل الدخول، يتم جلب المعلومات الصحيحة للمستخدم من auth0، ولكن discourse لا يزال يحاول إنشاء حساب.
يتم نقلي إلى شاشة مرحباً، لنقم بإنشاء حسابك مع خطأ يقول البريد الإلكتروني الأساسي مأخوذ بالفعل.

هذا هو الإعداد الحالي لجميع التجاوزات:

يرجى المساعدة، شكراً.

مرحباً روبرت!

يمكنك إصلاح هذا عن طريق تمكين هذا الإعداد: oauth2 allow association change

مرحباً @leonardo للأسف لا تزال المشكلة قائمة بعد تفعيل هذا الإعداد.

يبدو أنه يعمل بشكل جيد الآن. لقد أضفت قاعدة oauth2 email verified وهي تعمل الآن. مثير للاهتمام.

أحب هذه الإضافة. ألاحظ أنه عند تسجيل الخروج، يتم تسجيل خروجي من Discourse. ولكن عند النقر على تسجيل الدخول… يتم تسجيل دخولي مرة أخرى على الفور (دون الانتقال إلى Auth0). سمحت بعنوان URI لتسجيل الخروج في تطبيق Auth0 الخاص بي، ولكن يبدو أن https://AUTH0_DOMAIN/v2/logout لا يتم استدعاؤه أبدًا من هذه الإضافة. من يتولى صيانة هذا؟ هل يمكن إضافة هذا؟