خطأ في مسار /admin/users/1/log_out

أواجه هذه الرسالة عند محاولة تسجيل خروج المستخدم عبر نقطة نهاية تسجيل الخروج الموحدة (SSO)، سواء عبر Postman أو عبر الموقع.

تظهر سجلات الإنتاج خطأ في التوجيه. لقد قمت بمراجعة مرتين للتأكد من صحة اسم المستخدم ومفتاح API. أستطيع تشغيل نفس الكود بنجاح في بيئة التطوير، لكن لا يعمل في بيئة الإنتاج.

لقد جربت إلغاء مفتاح API وإعادة إنشائه عدة مرات دون جدوى. كما جربت وضع المعاملات في رأس الطلب (header) وإرسالها كمعاملات استعلام (query params) على حد سواء.

إليك مخرجات سجل الإنتاج:

Started POST “/admin/users/2/log_out?api_username=dev&api_key=[FILTERED]” for 73.71.125.29 at 2020-05-26 01:37:17 +0000
ActionController::RoutingError (No route matches [POST] “/admin/users/2/log_out”)

هل هناك إجراء خاص يجب اتخاذه لكي يتم التعرف على مفتاح API في بيئة الإنتاج؟

يجب عليك تعيين Api-Key و Api-Username في رؤوس الطلب. اطلع على مثال curl الموجود في أعلى هذا الموضوع: توثيق واجهة برمجة تطبيقات Discourse. تأكد من استخدام شرطة (-) وليس شرطة سفلية (_) لأسماء الحقول. على سبيل المثال، api-key سيعمل كاسم حقل، بينما api_key لن يعمل.

نجح ذلك، شكرًا لك.

إذا كان أي شخص آخر يعاني من هذه المشكلة، فإليك أمر curl المطلوب للاختبار:

curl -X POST "http://localhost:3000/admin/users/1/log_out" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: [FILTERED]" \
-H "Api-Username: system"