لقد نجحت للتو في تشغيل هذا باستخدام Authentik OAuth2، ومع ذلك كانت هناك بعض المشاكل مع إعداد oauth2 user json url. لقد استخدمت نقطة نهاية user_info الخاصة بـ Authentik لذلك (/application/o/userinfo/)، ومع ذلك لم أكن أعرف كيفية تعيين الحقول. بالنسبة لأي شخص يبحث عن كيفية إعداد Discourse باستخدام OAuth2 الخاص بـ Authentik، إليك الملخص:
- مسار معرف المستخدم:
preferred_username - مسار اسم المستخدم:
preferred_username - مسار الاسم:
name - مسار البريد الإلكتروني:
email - مسار البريد الإلكتروني الذي تم التحقق منه:
email_verified - الصورة الرمزية: فارغة.
كانت لدي المشاكل التالية:
- في البداية، نسيت الشرطة المائلة اللاحقة في عنوان URL الخاص بـ JSON
https://DOMAIN/application/o/userinfo/. أدى هذا إلى أن طلب معلومات المستخدم (رابط دائم للمصدر) أعاد رمز HTTP 301، مما تسبب في فشل تسجيل الدخول. لا أعرف ما إذا كان يجب أن تكون الشرطة المائلة اللاحقة موجودة حسب المواصفات، ولكن ربما سيكون من الجيد التعامل مع 301 بشكل صحيح. - كان تصحيح هذا صعبًا. كان إعداد
oauth2 debug authبمثابة المنقذ ولكن… يقوم Logster باقتطاع سجل التصحيح قبل تفريغ بيانات الاستجابة ذات المعنى فعليًا. اضطررت إلى تعديل سطر السجل يدويًا في الحاوية إلى
ربما يمكن تحديث سطر السجل هذا؟ أعتقد أنه يمكن أن يساعد الآخرين في معرفة مسار سمات JSON.log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")