2016-02-04 7 views
6

Sto utilizzando questo metodo per disconnettersi dal server HTTP che utilizza l'autenticazione HTTP di base. Questo funziona bene con IE e FireFox. Ma nel caso di Chrome, sono in grado di ottenere il file html anche con il nome utente e la password sbagliati.Problema di disconnessione dell'autenticazione HTTP BASIC con Chrome

In Chrome, il flusso è, viene visualizzato "********** Errore ***********", quindi viene visualizzata la pagina richiesta (some_server_file.html) .

Ma in IE/Chrome, il flusso è, viene visualizzato "********** Errore ***********", quindi la finestra di dialogo di accesso richiede le credenziali .

In qualche modo, Chrome invia il nome utente e la password corretti anche dopo la prima richiesta non riuscita con le credenziali errate.

Qualcuno può risolvere il problema di Chrome?

function logout() { 
    jQuery.ajax({ 
      type: "get", 
      url: "some_server_file.html", 
      async: false, 
      username: "wronguser", 
      password: "wrongpass", 
      headers: {"Authorization": "Basic xxx"} 
     }) 
     .success(function() { 
      console.log("********** Success ***********"); 
     }) 
     .fail(function() { 
      console.log("********** Failed ***********"); 
     }); 
    return false; 
} 

Thx

+0

Penso che questo potrebbe aiutarti. A quanto pare, funziona in Chrome 54, probabilmente anche nelle versioni successive. In sostanza si inviano credenziali errate per cancellare la cache di autenticazione in chrome. Vedi http://stackoverflow.com/a/30308402/1917897 per maggiori dettagli. – RaviU

risposta

1

autenticazione di base non è stato progettato per gestire il logout.

Se si desidera poter disconnettere gli utenti, è possibile creare un endpoint sul server che restituisce il codice di stato HTTP 403 (vietato). Questo attiverà il browser per "disconnettersi"/cancellare la cache di autenticazione di base.

User clicks logout button --> 
Ajax call to /logout which will return HTTP 403 --> 
Browser basic authentication cache will be cleared 
+0

@JavaUser ha fatto questo aiuto? – jeanfrg