2016-02-04 10 views
6

私はこの基本的なHTTP認証を使用しているHTTPサーバからログアウトする方法を使用しています。 これはIEとFireFoxでうまく動作します。しかし、Chromeの場合、誤ったユーザー名とパスワードでもhtmlファイルを取得できます。ChromeでのHTTP基本認証ログアウトの問題

Chromeでは、「********** Failed ***********」というエラーが表示され、要求されたページ(some_server_file.html)が表示されます。 。

しかし、IE/Chromeでは、「********** Failed ***********」エラーが表示され、ログインダイアログでクレデンシャルが表示されます。

いつか、最初のリクエストが失敗したクレデンシャルで失敗した後でも、Chromeは正しいユーザー名とパスワードを送信しています。

誰でも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

これはあなたを助けるかもしれないと思います。それは明らかにChrome 54で動作している可能性もあります。本質的に、不正な認証情報を送信して、認証キャッシュをChromeでクリアします。詳細については、http://stackoverflow.com/a/30308402/1917897を参照してください。 – RaviU

答えて

1

基本認証は、ログアウトし管理するために設計されていませんでした。

ユーザーをログアウトできるようにするには、​​(禁止された)ステータスコードを戻すエンドポイントをサーバー上に作成できます。これにより、ブラウザは基本認証キャッシュを「ログアウト」/クリアします。

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

@JavaUserはこの助けをしましたか? – jeanfrg