6

Tengo bastantes scripts de GreaseMonkey que escribí en mi trabajo que me conectan automáticamente a los sitios internos que tenemos aquí. Logré escribir un script para casi cada uno de estos sitios a excepción de nuestra aplicación de hoja de horas, que usa la autenticación HTTP.Script de GreaseMonkey para el inicio de sesión automático con autenticación HTTP

¿Hay alguna manera de usar GreaseMonkey para iniciar sesión en este sitio automáticamente?

Editar: Conozco la funcionalidad de contraseña de la tienda en los navegadores, pero mis scripts van un paso más allá al comprobar si estoy conectado al sitio cuando se carga (atravesando HTML) y luego enviar una publicación al inicio de sesión página. Esto elimina el paso de tener que cargar el sitio, ingresar a la página de inicio de sesión, ingresar mis credenciales, y luego presionar enviar

Respuesta

6

Es posible iniciar sesión utilizando la autenticación HTTP configurando el encabezado HTTP "Autorización", con el valor de este encabezado establecido en la cadena "nombre de usuario básico: contraseña", pero con la parte "nombre de usuario: contraseña" del cadena Base 64 codificada.

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

Un poco de investigar encontrado que Greasemonkey ha aa función integrada en ella donde se puede enviar peticiones GET/POST al servidor de llamada GM_xmlhttpRequest

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

Así que ponerlo todo junto (y también obteniendo este código JavaScript para convertir cadenas en base64 obtengo el siguiente

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, 
     } 
    }); 
} 

Así que cuando ahora visitar el sitio, que atraviesa el DOM y si no estoy inscrito, automágicamente me abre una sesión.

1

¿Por qué no usas Firefox (supongo que estás usando Firefox) para recordar tus credenciales usando Password Manager?

Encontré este enlace: HTTP Authentication with HTML Forms. Parece que puede usar javascript para hacer autenticación HTTP. No creo que puedas hacer que Greasemonkey interrumpa la primera vez que navegas hacia una URL. Es posible que deba configurar algún tipo de punto de inicio que pueda usar para que greasemonkey redirija automáticamente + inicio de sesión. Por ejemplo, puede tener la página local que toma la URL de destino en la cadena de consulta, haga que Greasemonkey haga automáticamente la autenticación + redirección. El único problema es que deberá ajustar los marcadores del sitio con su página de inicio para los marcadores que usa como puntos de entrada.

1

La información de autenticación HTTP se envía en cada solicitud, no solo para iniciar sesión. El navegador guardará en caché la información de inicio de sesión después de iniciar sesión por primera vez. Por lo tanto, usted realmente no guardar nada, tratando de comprobar si ya está en el sistema

También podría olvidarse de Greasemonkey por completo y sólo dará su nombre de usuario en la url de esta manera:.

http://username:[email protected]/ 

Por supuesto, guardar esto en un marcador puede ser un riesgo para la seguridad, pero no más, así que guarde su contraseña en el navegador.

Cuestiones relacionadas