http - jodel - ما الذي يجب عليّ تمريره لرأس WWW-Authenticate على 401s إذا كنت أستخدم OpenID فقط؟




jodel http 401 (2)

هناك مواصفات OAuth Discovery تشير إلى ما يجب وضعه في رأس WWW-Authenticate - إذا لم تكن المواضع قديمة بدون مواصفات بديلة حتى الآن.

تنص المواصفات HTTP:

10.4.2 401 غير مصرح به

يتطلب الطلب مصادقة المستخدم. يجب أن يتضمن الرد مجال رأس WWW-Authenticate (القسم 14.47) يحتوي على تحد ينطبق على المورد المطلوب.

إذا كان نظام تسجيل الدخول الوحيد الذي أقوم به هو OpenID (أو CAS ، أو الرموز المميزة لـ OAuth ، & c.) ، فماذا يجب أن أضع في هذا الحقل؟ بمعنى ، كيف يمكنني الإشارة إلى أن العميل يحتاج إلى المصادقة المسبقة وإنشاء جلسة بدلاً من محاولة إرسال بيانات الاعتماد مع كل طلب؟

قبل الإجابة ، "لا ترسل 401 ، أرسل 3xx لإعادة التوجيه إلى صفحة تسجيل الدخول OpenID ،" ماذا عن عملاء HTML غير؟ كيف ، على سبيل المثال ، سيقوم Stack Overflow بعمل واجهة برمجة تطبيقات يمكن لبرنامجي المخصص التفاعل معها؟


وفقًا لـ RFC2617 auth-scheme يمكن أن يكون auth-scheme أي شيء ؛ إذا كنت تريد حقاً 401 لا تقوم بتكسير المواصفات الفنية من خلال صنع شيء مثل WWW-Authenticate: OpenID realm="My Realm" location="http://my/login/location" . بعد قولي هذا ، سلوك رمز الآخرين عندما تفعل ذلك بالطبع غير معرفة. :-)







http-headers