Comment empêcher Firefox de demander un nom d'utilisateur / mot de passe avec HTTP Basic Auth avec JQuery AJAX?
Je suis en train d'écrire certains navigateur côté dynamique de la fonctionnalité et l'utilisation de HTTP Basic Auth dans la protection de certaines ressources. L'expérience utilisateur est très important et est très personnalisée.
Voici un test simple méthode JQuery qui finira par tester si l'utilisateur a fourni les informations d'identification appropriées 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;
});
});
Si ils ne sont pas autorisés à accéder à /private
au moment où ils devraient voir juste la boîte d'alerte. Cependant, sur Firefox, un navigateur fourni formulaire de connexion apparaît (pour réessayer avec de nouvelles informations d'identification). Safari ne pas faire cela.
Nous voulons contrôler complètement l'expérience avec les formulaires personnalisés, des fondus, des transitions, etc. Comment puis-je empêcher Firefox par défaut de la boîte de montre? (Si ce sera une question lorsque nous avons test pour IE, j'aimerais entendre des solutions, là aussi.)
source d'informationauteur Ian Terrell | 2009-05-30
Vous devez vous connecter pour publier un commentaire.
Dans le cas où vous ne l'avez pas lu:
Comment puis-je supprimer le navigateur de la boîte de dialogue d'authentification?
N'a pas l'air trop prometteur 🙂
La solution est de définir la
WWW-Authenticate
- tête pour autre chose queBasic
. Par exemple fixé à:ou
si vous utilisez le formulaire de connexion. Ensuite, le navigateur ne sera pas afficher une fenêtre de connexion.
Malheureusement, je suis frapper le même problème ici.
À mon avis, les Navigateurs ne devraient pas donner une invite pour un xmlhttprequest. Je souhaite vraiment que quelqu'un pourrait pousser qui font que les gens ont vraiment envie de passer à jQuery pour leur auth besoins.
Bien ici, c'est l'aide que je peux vous donner, j'ai trouvé cette jQuery Digérer la chose, je n'ai aucune idée de ce qu'il fait vraiment ou quoi que ce soit, mais si quelqu'un pouvait prendre ce code, le droit chemin, nous avons pu avoir un jquery digérer auth système.
https://www.openhub.net/p/digestj
Je pense qu'avec cette pratique nouvelle AuthDigestDomain option, nous pourrions avoir le script ci-dessus, réécrit ou quoi que ce soit et ont sécurisé la zone " lié " ensemble et nous avons pu obtenir au-delà de ce problème une fois pour toutes. Eh bien... bonne chance =)