6

J'ai plusieurs scripts GreaseMonkey que j'ai écrits dans mon travail et qui me connectent automatiquement aux sites internes que nous avons ici. J'ai réussi à écrire un script pour presque chacun de ces sites à l'exception de notre application de feuille de temps, qui utilise l'authentification HTTP.Script GreaseMonkey pour la connexion automatique à l'aide de l'authentification HTTP

Y at-il un moyen que je peux utiliser GreaseMonkey pour me connecter automatiquement à ce site? Editer: Je suis conscient de la fonctionnalité de mot de passe du magasin dans les navigateurs, mais mes scripts vont plus loin en vérifiant si je suis connecté au site quand il se charge (en traversant HTML), puis en soumettant un message à la connexion page. Cela supprime l'étape d'avoir à charger le site, entrer dans la page de connexion, entrer mes informations d'identification, puis appuyer sur Envoyer

Répondre

6

Vous pouvez vous connecter en utilisant l'authentification HTTP en définissant l'en-tête HTTP "Autorisation", avec la valeur de cet en-tête sur la chaîne "nom d'utilisateur de base: mot de passe", mais avec la partie "nom d'utilisateur: mot de passe". Chaîne Base 64 encodée.

http://frontier.userland.com/stories/storyReader$2159

Un peu de recherches constaté que Greasemonkey a aa fonction intégrée où vous pouvez envoyer des demandes GET/POST au serveur appelé GM_xmlhttpRequest

http://diveintogreasemonkey.org/api/gm_xmlhttprequest.html

donc mettre tous ensemble (et aussi obtenir ce code JavaScript pour convertir les chaînes en base64 je reçois ce qui suit

http://www.webtoolkit.info/javascript-base64.html

var loggedInText = document.getElementById('metanav').firstChild.firstChild.innerHTML; 
if (loggedInText != "logged in as jklp") { 
    var username = 'jklp'; 
    var password = 'jklpPass'; 
    var base64string = Base64.encode(username + ":" + password); 

    GM_xmlhttpRequest({ 
     method: 'GET', 
     url: 'http://foo.com/trac/login', 
     headers: { 
      'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3', 
      'Accept': 'application/atom+xml,application/xml,text/xml', 
      'Authorization':'Basic ' + base64string, 
     } 
    }); 
} 

Alors, quand je visite le site maintenant, il parcourt les DOM et si je ne suis pas loggué, il me logs automatiquement dans.

1

Pourquoi n'utilisez-vous pas Firefox (je suppose que vous utilisez Firefox) pour vous souvenir de vos informations d'identification en utilisant le Gestionnaire de mot de passe? Je trouve ce lien: HTTP Authentication with HTML Forms. On dirait que vous pouvez utiliser javascript pour faire l'authentification HTTP. Je ne pense pas que Greasemonkey puisse vous interrompre lorsque vous naviguez pour la première fois sur une URL. Vous devrez peut-être configurer une sorte de point de lancement que vous pouvez utiliser pour que greasemonkey redirige automatiquement + login. Par exemple, vous pouvez avoir la page locale qui prend l'URL de destination dans la chaîne de requête, demander à Greasemonkey d'effectuer automatiquement l'authentification + la redirection. Le seul problème est que vous devrez envelopper les signets du site avec votre page de lancement pour les signets que vous utilisez comme points d'entrée.

1

Des informations d'authentification HTTP sont envoyées à chaque requête, pas seulement pour se connecter. Le navigateur mettra en cache les informations de connexion de la session après la première connexion. Donc, vous ne vraiment économiser de rien en essayant de vérifier si vous êtes déjà connecté

Vous pouvez également oublier Greasemonkey tout à fait juste et donner votre login dans l'URL comme ceci:.

http://username:[email protected]/ 

Bien sûr, sauvegarder ceci dans un signet peut être un risque pour la sécurité, mais pas plus que pour enregistrer votre mot de passe dans le navigateur.

Questions connexes