J'écris des fonctionnalités dynamiques côté navigateur et en utilisant HTTP Basic Auth pour protéger certaines ressources. L'expérience utilisateur est très importante et hautement personnalisée.Comment empêcher Firefox de demander un nom d'utilisateur/mot de passe avec HTTP Basic Auth avec JQuery AJAX?
Voici une méthode JQuery de test simple qui éventuellement permettra de tester si un utilisateur a fourni les informations d'identification droite sous une forme:
$(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;
});
});
S'ils ne sont pas autorisés à accéder /private
, au moment où ils devraient voir à la boîte d'alerte. Cependant, sur Firefox, un formulaire de connexion fourni par le navigateur apparaît (pour réessayer avec de nouvelles informations d'identification). Safari ne fait pas ça.
Nous voulons contrôler complètement l'expérience avec les formes personnalisées, les fondus, les transitions, etc. Comment puis-je empêcher la boîte par défaut de Firefox d'être affichée? (. Si ce sera un problème lorsque nous testons pour IE, j'aimerais entendre des solutions là aussi)
Notez le suivi à http://stackoverflow.com/questions/928967/can-i-co-cache-into-not-including-a-www-authenticate-header-for-failed-http. –