Wie verhindere ich, Firefox von Eingabeaufforderung für Benutzername / Passwort mit HTTP Basic Auth mit JQuery AJAX?

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

Frage

Ich schreibe eine Browser-Seite dynamische Funktionalität und Verwendung von HTTP Basic Auth einige Ressourcen zu schützen. Die Benutzererfahrung ist sehr wichtig und ist sehr individuelle.

Hier ist ein einfacher Test JQuery Methode, die prüft schließlich, wenn ein Benutzer die richtigen Anmeldeinformationen in einer Form geliefert hat:

$(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;
  });
});

Wenn sie nicht erlaubt sind /private zugreifen zu können, im Moment sollten sie nur die Warnmeldung sehen. Doch auf Firefox, ein Browser-Login-Formular zur Verfügung gestellt erscheint (erneut zu versuchen mit neuen Anmeldeinformationen). Safari tut dies nicht.

Wir wollen das Erfahrung mit benutzerdefinierten Formularen steuern, Überblendungen, Übergänge etc. Wie kann ich Firefox Standard-Box aus wird gezeigt? (Wenn dies ein Problem sein, wenn wir für das Internet Explorer zu testen, würde ich gerne Lösungen dort hören, auch.)

War es hilfreich?

Lösung

Falls Sie haben es nicht gelesen:

Wie kann ich unterdrücke den Authentifizierungsdialog des Browsers?

Sieht nicht allzu viel versprechend:)

Andere Tipps

Die Lösung ist der WWW-Authenticate Header auf etwas anderes als Basic einzustellen. Zum Beispiel setzen Sie es an:

WWW-Authenticate: None

oder

WWW-Authenticate: FormBased

Wenn Sie verwenden formularbasierte Anmeldung. Dann wird der Browser Sie kein Login-Fenster zeigen.

Leider bin ich das gleiche Problem trifft hier.

Meiner Meinung nach, Browser sollte keine Aufforderung für einen xmlhttprequest geben. Ich wünschte wirklich, jemand würde schieben, dass die Ursache der Menschen wirklich wollen, sind zu jQuery für ihre Auth Bedürfnisse zu bewegen.

hier Nun ist die Hilfe, die ich Ihnen geben kann, fand ich dieses Ding jQuery Digest, ich habe keine Ahnung, was es wirklich tut oder etwas, aber wenn jemand diesen Code, den richtigen Weg nehmen könnten, könnten wir ein jquery verdauen Auth-System haben .

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

ich mit diesem praktischen neuen AuthDigestDomain Option denken würde, könnten wir das obige Skript geschrieben haben oder was auch immer und haben die gesicherten Bereich ‚verbunden‘ zusammen und wir konnten Vergangenheit dieses Problem ein für alle Mal bekommen. Nun ja ... viel Glück =)

Ich fand irgendwo eine Abhilfe dieses Authentifizierungs Popup-Ausgabe.

WWW-Authenticate: None

funktioniert nicht für mich, aber ich habe hinzugefügt

'Authorization': 'Basic'

zu dem Kopf- und es wirkt wie ein Zauber.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top