PhantomJS n'envoie pas d'en-tête d'authentification

J'essaie d'ouvrir une page web qui nécessite une authentification HTTP, dans PhantomJS.
Mon script est basé sur le loadspeed.js exemple:

var page = require('webpage').create(),
    t, address;
page.settings.userName = "user";
page.settings.password = "password";
if (phantom.args.length === 0) {
  console.log('Usage: loadspeed.js <some URL>');
  phantom.exit();
} else {
  t = Date.now();
  address = phantom.args[0];
  page.open(address, function (status) {
      if (status !== 'success') {
          console.log('FAIL to load the address');
      } else {
          t = Date.now() - t;
          console.log('Loading time ' + t + ' msec');
          page.render('page.jpg');
      }
      phantom.exit();
  });
}

Je peux le voir sur le rendu page.jpg que je suis un 401 à chaque fois.
J'ai également la trace de la session HTTP à l'aide de Wireshark, qui révèle qu'aucun en-tête d'authentification est envoyé dans la requête GET à l'URL donnée.

Ce que je fais mal ici? Je suis juste de commencer avec PhantomJS, mais j'ai cherché toute la soirée, et pas obtenu loin...

  • Quel navigateur? Chrome 19 seulement ne vous permet pas de faire une XHR paramètre le nom d'utilisateur et mot de passe. Ceci a été causé quand ils ont interdit le nom d'utilisateur:mot de passe@ proportion d'Url. HTTP Auth à l'encontre d'un autre site web est une affaire délicate. Je crois que je vais écrire un blog sur ce sujet de la prochaine fin de semaine.
  • Ne pas le faire directement avec cette question, mais je tiens à souligner que, comme de PhantomJS 1.9.2 et SlimerJS 0.8.4, vos informations d'authentification (que ce soit fait avec page.settings ou page.customHeaders) est envoyé à tous les serveurs 3ème partie référencées sur cette page. (E. g. si la page vous connecter utilise un CDN pour leur jQuery alors que le serveur CA devient votre nom d'utilisateur et mot de passe; de même pour les serveurs ad.) SlimerJS, au moins, est de travailler sur une solution.
InformationsquelleAutor Karl Barker | 2012-04-11