في تطبيقنا، نستخدم مفتاح API عالمي يُستخدم مع جميع المستخدمين. كنا نستخدم اسم مستخدم افتراضي (مستخدم غير موجود) وهو anonymous لتمثيل السياق عندما لا يكون المستخدم مسجلاً للدخول. وقد عمل هذا بنجاح لأكثر من 3 سنوات حتى 25 أكتوبر 2020 الساعة 12:39 صباحًا بتوقيت وسط الولايات المتحدة.
قامت بتخفيف المشكلة اليوم بإنشاء مستخدم يحمل هذا الاسم. هل تم إصدار قيد خلال عطلة نهاية الأسبوع؟ أم تحديث للـ API؟
أدى هذا الأمر إلى تعطيل القدرة على عرض التعليقات لجميع المستخدمين العامين، لذا فإن أي إجابة ستكون محل تقدير كبير.
أنا لست على علم بأي تغيير حديث أدى إلى تغيير هذا السلوك. لقد كنتُ على اقتناع بأنه يعمل دائمًا بهذه الطريقة (عرض رسالة خطأ إذا لم يتم العثور على المستخدم). هذا هو الكود الذي يتحقق مما إذا كان يمكنه قراءة اسم المستخدم من بيانات اعتماد واجهة برمجة التطبيقات.
تم إجراء تغيير حديث منذ 23 يومًا، لكنه لا ينطبق على وضعك ويؤدي إلى عرض رسالة خطأ مختلفة على أي حال.
فقط للتأكد مرة أخرى، قمت بإعداد نظام discourse المحلي الخاص بي لاستخدام هذا الالتزام من قبل عام تقريبًا، وقد حصلت على نفس الخطأ عند استخدام مستخدم غير موجود.
من الجيد أن ننتفع من هذا الوضع بوجود نطاقات واجهة برمجة التطبيقات الآن، لذا إذا كان المستخدمون يحتاجون فقط إلى صلاحية read، فيمكنك تحديث مفتاح واجهة برمجة التطبيقات هذا بحيث لا يكون بعد الآن مفتاح وصول شامل.
إذا كان الموقع عامًا، فيجب أن تتمكن من إرسال هذه الطلبات من الخلفية دون أي مصادقة على الإطلاق للحصول على العرض المجهول. وإذا أصبحت حدود المعدل مشكلة، فستحتاج حينها إلى استخدام مستخدم وهمي فعلي.
هناك شيء آخر خطر ببالي وهو إعداد الموقع revoke api keys days. وبما أن هذا المستخدم غير موجود، فإننا لا نقوم بتحديث تاريخ آخر استخدام لهذا المفتاح، وأعتقد أن المفتاح قد تم إلغاؤه تلقائيًا؟ ومع ذلك، لا يزال غير واضح لي كيف كان بإمكانك تقديم طلب صالح في المقام الأول.