تعذر إنشاء مفتاح API بمستوى "مستخدم واحد"، حيث يعود افتراضيًا دائمًا إلى "جميع المستخدمين"

خطوات إعادة الإنتاج:

  1. افتح https://yourdiscoursedomain.com/admin/api/keys
  2. اختر مفتاحًا جديدًا
  3. اختر “مستخدم واحد” كدرجة المستخدم
  4. أنشئ المفتاح
  5. افتح تفاصيل المفتاح بعد الإنشاء
  6. ستكون درجة المستخدم “جميع المستخدمين”

من غير الواضح بالنسبة لي ما الفرق بين خيارَي درجة المستخدم، لكن يبدو أن هذا خطأ واضح.

(أنا أستخدم خدمة Discourse المستضافة)

هل قمت أيضًا باختيار مستخدم لإنشاء مفتاح API الخاص به؟

في الغالب، ما تريده هو مفتاح API “لجميع المستخدمين”. لبعض الأمور، ولا سيما عند استخدام discourse_theme، يُطلب مفتاح مستخدم.

ما الذي تحاول فعله باستخدام واجهة برمجة التطبيقات (API)؟

إعجاب واحد (1)

يمكنني تكرار المشكلة إذا اتبعت الخطوات التي ذكرتها. عند إنشاء مفتاح API لمستخدم واحد، يتوقع Discourse إضافة اسم مستخدم إلى حقل ‘المستخدم’ في النموذج:

إذا تم تحديد ‘مستخدم واحد’ كمستوى المستخدم، ولكن لم يتم إضافة اسم مستخدم إلى حقل المستخدم، فسيتم إنشاء مفتاح API لجميع المستخدمين. أتوقع بدلاً من ذلك أن يتم عرض رسالة خطأ. مشابهًا لما يحدث عند إرسال النموذج بدون وصف.

3 إعجابات

كنت أرغب في إنشاء نوع من مستخدم “البوت” لاسترجاع المنشورات من فئات محددة. هذه النسخة من Discourse تعتمد على المصادقة عبر GSuite فقط، لذا لم يعد هناك طريقة لإنشاء مستخدمين عشوائيين. كنت أتمنى أن يسمح لي مفتاح “مستخدم واحد” بإدخال اسم المستخدم الجديد الذي أرغب في تخصيصه للبوت، لكنني أدركت الآن أن اسم المستخدم يجب أن يكون لمستخدم موجود بالفعل. حقل إدخال اسم المستخدم لا يحتوي على أي تحقق من الصحة، مما جعل الأمر غير واضح بأنني لا أستطيع إدخال أي اسم (كما أفعل مثلاً مع روابط الويب الواردة في Slack). ثم يفشل silently عند الإرسال عند البحث عن اسم المستخدم الذي أدخلته، ويقوم بإنشاء مفتاح “جميع المستخدمين” بدلاً من ذلك.

أعتقد أن هذه مشكلة تتعلق بقابلية الاستخدام أكثر من كونها خللاً وظيفياً. وجدت التوثيق هنا محيراً لأنه لم يشرح حقل مستوى المستخدم على الإطلاق، ولم يُذكر نوع “جميع المستخدمين” إلا في ملاحظة واحدة في تعليق أبعد أسفل الموضوع.

سيكون مفتاح API لجميع المستخدمين فعالاً ما لم ترغب في أن يكون “الروبوت” غير قادر على قراءة بعض الفئات.

هل هذا هو مكون تحديد اسم المستخدم الخاص بك @j.jaffeux؟

لا، هذا ليس مكون select-kit. المشكلة تكمن في أننا نتحقق فقط من وجود الوصف وليس من اسم المستخدم. وضع المستخدم (واحد/الكل) هو قيمة على جانب العميل فقط، لذا عند التحقق من صحة النموذج على جانب الخادم، كل ما يعرفه هو أننا طلبنا مفتاحًا وقدمنا مستخدمًا أم لا.

هذا من شأنه أن يحسّن الأمر، وسأطلب من ديفيد مراجعته:

7 إعجابات