بدءًا من 24 مارس، يبدو أنه كان هناك تغيير في الطريقة التي تستجيب بها واجهة برمجة تطبيقات Discourse للطلبات.
لم يتم إجراء أي تغييرات على الكود من جانبنا، ولا يزال مفتاح واجهة برمجة التطبيقات (Api-Key) صالحًا، ولكن إحدى خدمات الواجهة الخلفية لدينا التي تحاول الحصول على معلومات المستخدم بدأت في الفشل عند الوصول إلى users/by-external/{id}.json.
نرسل رؤوس Api-Key و Api-Username مع هذه الطلبات، والتي يجب أن تكون مطلوبة، وفقًا للتوثيق. هذه الطلبات كانت تعمل بشكل جيد لسنوات.
الآن، تفشل جميع الطلبات المقدمة إلى هذا نقطة النهاية برمز 403، وجسم الاستجابة:
{
"errors": [
"أنت غير مسموح لك بعرض المورد المطلوب."
],
"error_type": "invalid_access"
}
يحدث هذا أيضًا إذا حاولت طلب /u/{username}.json.
بشكل مدهش، عندما لا أرسل الرؤوس، فإن هذه الطلبات التي تتطلب وفقًا للتوثيق رؤوس المصادقة تستجيب بالفعل بالبيانات المطلوبة، كما لو كانت مصادق عليها.
لقد حاولت أيضًا إرسال مفتاح واجهة برمجة تطبيقات غير صحيح، وتستجيب برسالة مختلفة قليلاً:
{
"errors": [
"أنت غير مسموح لك بعرض المورد المطلوب. اسم مستخدم واجهة برمجة التطبيقات أو المفتاح غير صالح."
],
"error_type": "invalid_access"
}
هذا يخبرني أن المفتاح يتم قبوله، ولكنه يبلغ بشكل خاطئ أنه لا يمنح الوصول إلى المورد، بينما يمنح الطلبات غير المصادق عليها وصولاً كاملاً.
لقد اختبرت للتو باستخدام مفتاح واجهة برمجة تطبيقات جديد تمامًا مع خيارات جميع المستخدمين / عالمية، وأحصل على نفس النتائج.