RFC2616: هل أحتاج حقًا إلى تعيين www_authenticate عند العودة إلى 401؟

StackOverflow https://stackoverflow.com/questions/2596060

سؤال

وفق RFC2616 إذا عدت 401 ردًا على طلب إلى خادم (Ruby) ، "يجب أن أتضمن حقل رأس مصادقة WWW." هل هذا صحيح حقًا؟ لا يبدو أن عدم تعيين الرأس ليس له أي تأثير سلبي. أنا أستخدم Merb كإطار ويب ولا يجبرني على ضبط الرأس.

هل أفتقد شيئًا أم أن هذه قاعدة أكثر تكريمًا في الخرق؟

هل يجب أن تجبر أطر عمل الويب المطور على تعيين الرأس عند العودة إلى 401؟

هل كانت مفيدة؟

المحلول

المشكلة هي ما إذا كنت تتوقع أن يكون المستخدمون قادرين على التنقل من الفشل 401 إلى مصادقة ناجحة للمضي قدمًا. إذا فشلت في توفير رأس مصادقة على www ، فأنت تقوم بتغيير معنى 401 من "يجب أن توفر بيانات الاعتماد" إلى "لا نحب نوعك هنا". قد يكون هذا جيدًا لأغراضك ، لكن الناقص المتأصل في مفهوم رفض بيانات الاعتماد دون تقديم وسيلة لإصلاح المشكلة هو الجذر وراء "يجب".

نصائح أخرى

ترسل 401 إذا كنت تريد من العميل المصادقة ، وفي هذه الحالة تحتاج إلى إخباره كيف.

إذن ماذا تفعل يريد العميل أن يفعل؟ إذا كانت مجرد رسالة "لا يمكنك فعل هذا" ، ففكر في 403.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top