J'écris une fonctionnalité dynamique côté navigateur et j'utilise HTTP Basic Auth pour protéger certaines ressources. L'expérience de l'utilisateur est très importante et très personnalisée.
Voici une méthode JQuery de test simple qui permet de vérifier si un utilisateur a fourni les bonnes informations d'identification dans un formulaire :
$(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
Pour l'instant, ils ne devraient voir que 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 cela.
Nous voulons contrôler complètement l'expérience avec des formulaires personnalisés, des fondus, des transitions, etc. Comment puis-je empêcher l'affichage de la boîte par défaut de Firefox ? (Si ce problème se pose lorsque nous testons IE, j'aimerais connaître les solutions possibles dans ce cas également).