كيفية الحصول على المعرف الخارجي

عندما أستخدم API مباشرة، يمكنني الوصول إلى معرف المصادقة الخارجي للمستخدم دون أي مشكلة:

GET /admin/users/{id}.json

ومع ذلك، عندما أحاول استخدام واجهة برمجة تطبيقات JavaScript، لا يمكنني الحصول على نفس البيانات للمستخدم الحالي. في الواقع، currentUser لا تُرجع أي بيانات للمعّرفات الخارجية:

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer("1.5.0", api => {
  const currentUser = api.getCurrentUser();
  if (currentUser) {
    const userOAuthID = currentUser?.external_ids?.oauth2_basic;
    console.log("userOAuthID:", userOAuthID); // null
  }
});

كيف يمكنني الوصول إلى المعرف الخارجي لـ currentUser عبر جافاسكريبت؟

السياق

أحاول دفع المعرف الخارجي للمستخدم الحالي إلى window.dataLayer.

يبدو أنك تحاول الحصول على user_associated_account.provider_uid الخاص بالمستخدم. من خلال النظر إلى الكود، هناك إعداد موقع مخفي تحتاج إلى تمكينه للتسبب في إرجاع associated_account_ids من CurrentUserSerializer:

الإعداد include_associated_account_ids مخفي: discourse/config/site_settings.yml at main · discourse/discourse · GitHub. لتمكينه، أدخل وحدة تحكم Rails الخاصة بموقعك وقم بتشغيل:

SiteSetting.include_associated_account_ids=true

3 إعجابات

شكراً @simon.
على الرغم من ذلك، يبدو أنه لا يمكن تمكينه على مثيل مستضاف بنفسي. لا أجد خياراً في /admin/site_settings

تم الحل على الأرجح! : )

إذا كان موقعك مستضافًا بواسطة Discourse، فاتصل بفريق الدعم الخاص بهم. يجب أن يكونوا قادرين على تعيينه لك.

4 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.