Quiero almacenar la línea de encabezado de autenticación HTTP básica en una cookie de autenticación, para no tener que lidiar con el encabezado de autorización en solicitudes posteriores (estoy usando jQuery):Ajax: autenticación básica de HTTP y cookie de autenticación
authenticate: function(auth) {
var header = "Basic " + $.base64.encode(auth.username + ":" + auth.password);
document.cookie = "Authorization: " + header;
$.ajax({
type: "GET",
url: "http://someurl",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: auth.success,
error: auth.error
});
},
Si bien esto parece que funciona para el primer usuario que se conecte, no funciona para cualquier otro usuario dentro de la sesión del navegador, ya que los encabezados de autorización posteriores se añaden y no sobrescrito. Sé que se podría sobreescribir una cookie utilizando la sintaxis name=value
, pero esta sintaxis no se aplica al encabezado de autorización.
¿Hay alguna forma de deshacerse del encabezado de autorización anterior una vez que un nuevo usuario inicia sesión?
Cualquier ayuda sería apreciada. Gracias, JeHo
¿Se puede cambiar cualquier código en el lado del servidor? ¿Qué idioma estás usando (PHP, python, etc.)? – bpedro
El lado del servidor es un servicio de datos wcf (WebServiceHost) autohospedado (escrito en C#). Soy el propietario de este host, por lo que podría hacer cambios en él, pero me temo que las posibilidades son limitadas. – Jeldrik