ليس لدينا مشكلة في الوصول إلى external_id من سجل SSO للمستخدم الحالي المسجل دخوله باستخدام النهج التالي:\n\napi.getCurrentUser().external_id\n\nومع ذلك، لدينا بعض الأزرار/الروابط عندما يعرض المستخدم الحالي المسجل دخوله ملخص ملف تعريف شخص آخر (على سبيل المثال، الشخص X). يُعد external_id هذا المعرف الأساسي المستخدم في موقعنا الإلكتروني والذي سنستخدمه لإعادة التوجيه والإجراءات من موقعنا الإلكتروني. استخدام واجهة برمجة تطبيقات المستخدم المسؤول يعمل ولكن من الواضح أنه لا يعمل لحسابات المستخدمين غير المسؤولين.\n\nهل هذا ممكن وكيف؟
أعتقد أنك تريد إضافة مكون إضافي يضيف external_id إلى مُسلسل المستخدم.
شيء مثل:
add_to_serializer(:user, :external_id) do
object.external_id
end
أعتقد أنه سيكون شيئًا كهذا:
# في كتلة after_initialize الخاصة بالمكون الإضافي
after_initialize do
# تعديل: ربما تحقق أيضًا للتأكد من أن `SiteSetting.enable_discourse_connect` يُرجع `true`
add_to_serializer(:user, :external_id) {object&.single_sign_on_record&.external_id}
end
external_id هو خاصية لـ single_sign_on_record وليس لـ user. أتذكر هذا لأنني كنت متورطًا في:
شكراً للجميع على المدخلات، لقد انتهينا من القيام بذلك عبر حقول المستخدم المخصصة التي تتم مزامنتها من تطبيقنا أثناء تسجيل الدخول.