تسجيل دخول فاشل يُرجع 200 Ok

أنا أقوم بإجراء POST إلى /session.json مع الحمولة

{
  "login": "skroob",
  "password": "12345",
  "authenticity_token": "..."
}

عند نجاح تسجيل الدخول، يكون الرمز هو 200 و JSON المُعاد هو مجموعة من بيانات المستخدم. عند فشل تسجيل الدخول، يبدو JSON المُعاد كالتالي

{"error": "Incorrect username, email or password"}

ولكن الرمز لا يزال 200. هل هذا خطأ؟ هل يجب أن يكون الرمز لتسجيل دخول فاشل شيئًا >= 400، للإشارة إلى فشل؟

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

:thinking:

ربما. سأختار 401.

ولكن هذه أيضًا رموز حالة HTTP، لاتصالات عميل HTTP؛ أعتقد أن هذا الفارق الدقيق يؤدي إلى قرارات مثل إرجاع 200 (“تم طلب POST الخاص بك بنجاح، إليك التعليقات”).

لست متأكدًا، بنفسي. :slight_smile:

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

أرى المنطق وراء رمز 200 لتسجيل دخول فاشل، مما يعني أن تسجيل دخولك فشل بنجاح، بدلاً من الفشل بشكل غير ناجح. :upside_down_face:

4 إعجابات

ضع في اعتبارك أن هذه أيضًا “ميزة” إلى حد ما من حيث أنها تربك الروبوتات التي تحاول تسجيل الدخول.
أنا متردد في تغيير هذا. ربما…

6 إعجابات

أنا لا أطلب تغييرًا. ما أردته كان خيارًا: تغيير أو تأكيد بأن السلوك مقصود - وهو ما حصلت عليه الآن. شكرًا!

3 إعجابات