2016-02-04 17 views
6

Używam poniższej metody do wylogowania się z serwera HTTP używającego podstawowego uwierzytelniania HTTP. To działa dobrze z IE i FireFox. Ale w przypadku Chrome mogę pobrać plik html nawet z niewłaściwą nazwą użytkownika i hasłem.Problem z wylogowaniem z protokołu HTTP BASIC Authentication z Chrome

W Chrome przepływ jest, otrzymuję komunikat "********** Błąd" *********** ", a następnie wyświetlana jest żądana strona (plik_serwera_zastąpionego.html) .

Ale w IE/Chrome przepływ jest, otrzymuję komunikat "********** Nieudany ***********", a następnie okno dialogowe logowania monituje o kredyty .

W niektórych przypadkach Chrome wysyła poprawną nazwę użytkownika i hasło nawet po tym, jak pierwsze żądanie zakończyło się niepowodzeniem z niepoprawnymi dowodami.

Czy ktoś może naprawić problem z 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

Myślę, że to może ci pomóc. Wygląda na to, że działa w Chrome 54, prawdopodobnie działając także na późniejszych wersjach. Zasadniczo wysyłasz niepoprawne dane uwierzytelniające, aby wyczyścić pamięć podręczną auth w chrome. Zobacz http://stackoverflow.com/a/30308402/1917897 po więcej szczegółów. – RaviU

Odpowiedz

1

Uwierzytelnianie podstawowe nie został zaprojektowany do zarządzania wylogowaniu.

Jeśli chcesz móc się wylogować, możesz utworzyć punkt końcowy na swoim serwerze, który zwróci kod statusu HTTP 403 (zabroniony). Spowoduje to wylogowanie się przeglądarki/wyczyszczenie podstawowej pamięci podręcznej uwierzytelniania.

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

@JavaUser zrobił tę pomoc? – jeanfrg

Powiązane problemy