يشرح هذا الدليل كيفية العثور على مستخدم Discourse بناءً على
external_idالخاص به من مزود الهوية باستخدام استدعاءات API.
مستوى المستخدم المطلوب: مسؤول (Administrator)
عند استخدام نظام مصادقة خارجي، يحتفظ Discourse بتتبع معرفي مستخدم: user_id الخاص بـ Discourse، و external_id من مزود الهوية. إذا كنت بحاجة إلى البحث عن مستخدم Discourse بناءً على external_id، فهذا المقال الإرشادي (howto) مخصص لك! أدناه، ستتعلم كيفية إجراء هذه العملية.
إعداد واجهة برمجة التطبيقات (API Setup)
أولاً، تأكد من تكوين مفتاح API إداري بشكل صحيح. لمزيد من المعلومات حول إعداد واستخدام واجهة برمجة تطبيقات Discourse، راجع وثائق واجهة برمجة تطبيقات Discourse.
DiscourseConnect
إذا كنت تستخدم DiscourseConnect (المعروف سابقًا باسم Discourse SSO)، فيمكنك جلب مستخدم باستخدام استدعاء API التالي:
curl https://myforum.example.com/u/by-external/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
استبدل {external-id} بمعرف الهوية الخارجي الفعلي للمستخدم الذي تبحث عنه. إذا تم العثور على مستخدم، فسيتم إرجاع معلوماته. إذا لم يتم العثور عليه، فسيتم إرجاع خطأ 404.
مزود المصادقة الآخر (Other Authentication Provider)
يعمل هذا مع جميع الطرق الأساسية، بالإضافة إلى المكونات الإضافية التي تستخدم إطار عمل “ManagedAuthenticator” (بما في ذلك discourse-openid-connect و discourse-oauth2-basic).
أولاً، ابحث عن “اسم الموفر” (provider name) للموثق الخاص بك. يوجد هذا عادةً في عنوان URL لرد الاتصال (على سبيل المثال، إذا كان عنوان URL لرد الاتصال هو /auth/oauth2_basic/callback، فإن اسم الموفر هو oauth2_basic).
بعد ذلك، يمكنك جلب مستخدم بهذه الطريقة:
curl https://myforum.example.com/u/by-external/{provider}/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
استبدل {provider} باسم الموفر الفعلي و {external-id} بمعرف الهوية الخارجي للمستخدم الذي تبحث عنه. إذا تم العثور على مستخدم، فسيتم إرجاع معلوماته. إذا لم يتم العثور عليه، فسيتم إرجاع خطأ 404.