كيف يمكنني الاحتفاظ بفايرفوكس من المطالبة باسم المستخدم / كلمة المرور مع مصادقة HTTP الأساسية مع JQuery Ajax؟

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

سؤال

أنا أكتب بعض الوظائف الديناميكية بجانب المتصفح واستخدام مصادقة HTTP الأساسية لحماية بعض الموارد. تجربة المستخدم مهمة للغاية ومخصصة للغاية.

إليك طريقة مسج اختبار بسيطة ستختبر في نهاية المطاف إذا قام المستخدم بتزويد بيانات الاعتماد الصحيحة في نموذج:

$(document).ready(function() {
    $("#submit").click(function() {
    var token = Base64.encode($('#username').val() + ':' + $('#password').val());        
    $.ajax({
      url: '/private',
      method: 'GET',
      async: false,
      beforeSend: function(req) {
        req.setRequestHeader('Authorization', 'test:password');
      },
      error: function(request, textStatus, error) {
        if (request.status == 401) {
          alert('401');
        }
      }
    });
    return false;
  });
});

إذا لم يسمح لهم بالوصول /private, في الوقت الحالي، يجب أن يروا مربع التنبيه فقط. ومع ذلك، على Firefox، ينبثق نموذج تسجيل الدخول الذي يتم توفير المتصفح (لإعادة المحاولة مع بيانات اعتماد جديدة). رحلات السفاري لا تفعل هذا.

نريد التحكم في التجربة تماما مع النماذج المخصصة، يتلاشى، والانتقالات، إلخ. كيف يمكنني إبقاء المربع الافتراضي لفيرفوكس من عرضه؟ (إذا كانت هذه ستكون مشكلة عندما نختبر أي، فأنا أحب أن أسمع الحلول هناك أيضا.)

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

المحلول

في حال لم تقرأ ذلك:

كيف يمكنني تقسيم مربع حوار مصادقة المتصفح؟

لا تبدو واعدة للغاية :)

نصائح أخرى

الحل هو ضبط WWW-Authenticate رأس لشيء آخر غير Basic. وبعد على سبيل المثال تعيينه إلى:

WWW-Authenticate: None

أو

WWW-Authenticate: FormBased

إذا كنت تستخدم تسجيل الدخول المستند إلى النموذج. ثم لن تظهر لك المتصفح نافذة تسجيل الدخول.

لسوء الحظ، أنا ضرب نفس المشكلة هنا.

في رأيي، يجب ألا تعطي المتصفحات موجه ل XMLHTPRequest. أتمنى أن يدفع شخص ما، مما يجعل الناس يريدون حقا الانتقال إلى مسج احتياجات المصادقة الخاصة بهم.

حسنا هنا هي المساعدة التي يمكنني تقديمها لك، لقد وجدت هذا الشيء المسج هذا، ليس لدي أي فكرة عما يفعله أو أي شيء حقا، ولكن إذا كان شخص ما يمكن أن يأخذ هذا الرمز في الطريق الصحيح، فقد يكون لدينا نظام مصادقة جيسرية.

https://www.openhub.net/p/digestj.

أعتقد أن هذا الخيار مفيد جديد AuthDigestDomain، يمكن أن يكون لدينا البرنامج النصي أعلاه إعادة كتابة أو أيا كان واحصل على منطقة مضمونة "مرتبطة" معا ويمكننا تجاوز هذه المشكلة مرة واحدة وإلى الأبد. حسنا ... أفضل حظا =)

لقد وجدت في مكان ما حلدا من مشكلة الإشباف عن هذه المصادقة.

WWW-Authenticate: None

لا يعمل من أجلي، لكنني أضفت

'Authorization': 'Basic'

إلى الرؤوس ويعمل مثل سحر.

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