web-dev-qa-db-ja.com

.htaccess(および.htpasswd)認証を使用しているときにログアウトする方法は?

可能性のある複製:
PHP経由のHTTP認証ログアウト

こんにちは

.htaccessおよび.htpasswdを使用して保護されているいくつかの機能がWebサイトにあります。ユーザーがこれにアクセスしようとすると、詳細の入力を求めるプロンプトが表示されます。彼らは詳細を入力し、入ってきて、物などを見ることができます。

私の質問は、このタイプの認証用にlogout機能を作成する方法です。ブラウザウィンドウを閉じて「ログアウト」できることを知っています。しかし、これは理想的ではありません。私に何を提案しますか?

ありがとう。

27
TigerTiger

通常、ブラウザはこれをサポートしていません。 ログアウト方法 をご覧ください。

ブラウザーが最初に基本認証の実装を開始して以来、Webサイト管理者はユーザーがログアウトできるようにする方法を知りたいと考えていました。このチュートリアルで前述したように、ブラウザーはユーザー名とパスワードを認証レルムとともにキャッシュするため、これはサーバー構成の機能ではなく、ブラウザーが資格情報を忘れるようにする問題であるため、次回はリソースが要求された場合、ユーザー名とパスワードを再度指定する必要があります。公共の場所でブラウザを使用している場合や、ブラウザをログインしたままにしたくないなど、次の人が銀行口座にアクセスできるようにするなど、これが望ましい状況は数多くあります。

ただし、これはおそらく基本認証について最もよく寄せられる質問ですが、これまでのところ、主要なブラウザメーカーはこれを製品に組み込むのに望ましい機能とは考えていません。

その結果、この質問に対する答えは、できません。申し訳ありません。

サイトのHTTP認証をクリアできるブラウザー拡張機能があります。 Firefoxの場合、WebDeveloper拡張機能(とにかく私のお気に入りの拡張機能の1つ)がこの機能を提供します。このためのメニューはMiscellaneous/Clear Private Data/HTTP Authentication

31

firefoxとchromeでテスト済み。できることは、ユーザーを http:// logout:[email protected] に送信することです。これにより、現在のユーザー名/パスワードがログアウト/ログアウトに置き換えられます(無効なユーザー/パスの組み合わせである可能性があります)。ユーザー名/パスワードが間違っているため、サイトにアクセスするには再度ログインする必要があります。

operaでは、複数のユーザー名/パスワードを同時に持つことができるため、これは機能しません。 IEは http:// username:[email protected] URLをサポートしていないため、IEでも機能しませんでした。

25
Marius

私は数年前にこの問題に遭遇しました。誰もが抱えている問題があり、だれも一般的な方法で解決したいと思わないことを発見するのは非常にイライラします。

HTTP認証の不適切なログアウト機能 で述べたように、答えはRFCを変更してタイムアウトを許可し、ログアウトボタンをサポートすることだと思います。サーバーが「ログアウト」ヘッダーを送信できるという著者の追加の提案は、Webサイトが単にWeb上のリンクを含めることができるため、anyクライアントユーザーエージェントサポートの必要性を実際に排除します。現在のセッションを無効にするために必要な応答コードやヘッダーを返すURLへのページ。

2
Grant Wagner

It ISログアウトの種類。ユーザーがBADログイン情報を入力するまでHTTP 401を返すログアウトページを実装してから、別の場所にリダイレクトします。ブラウザは最新のログイン情報を記憶します受け入れられたため、正しいログインが上書きされます。

しかし、これはちょっと使用できません。ユーザーの協力が必要です。

1
nothrow