تعمل بشكل جيد لتسجيل دخول المستخدم، لكن تمرير المفتاح groups لا يبدو أنه يقوم بأي شيء. لقد راجعت كود ManagedAuthenticator ولم أجد أي شيء يتعلق بالمجموعات.
@david، ما مدى صعوبة تنفيذ هذا لشخص لم يكتب إضافات من قبل؟ هل الأمر بسيط مثل جلب المجموعات المستخلصة من JWT من discourse بناءً على الاسم، ثم إسناد نتيجة الاستعلام (كائنات المجموعات) إلى user.groups؟ لدي بعض الإلمام بالإضافة (ببساطتها) وقد أستطيع القيام بذلك.
أيضًا، هل يجب أن أبدأ في هذا؟ إذا كان بحوزتي JWT، فهل يمكنني المصادقة عبر OpenID Connect؟
يعتمد ذلك على كيفية رغبتك في أن يعمل الأمر… فغالبًا ما تريد أن تتمكن من إنشاء مجموعات عادية في Discourse أيضًا، دون أن تقوم مفاتيح JWT بحذف الأعضاء منها بشكل عشوائي. في نظام SSO الأصلي الخاص بـ Discourse، نحل هذه المشكلة باستخدام معلمتين: “إضافة مجموعات” و “إزالة مجموعات”.
في إضافة JWT، يمكنك على الأرجح إضافة هذا المنطق في دالة after_authenticate الخاصة بالمصادق. تأكد من استدعاء super وإرجاع استجابته، حتى تعمل جميع العناصر الموجودة حاليًا بشكل صحيح. مثال على هذا النوع من التجاوز موجود هنا