[解決済み】BASIC認証でWebサイトからユーザーをログアウトさせる方法は?
質問
Basic認証を使用しているユーザーをWebサイトからログアウトさせることは可能ですか?
一度認証されると、各リクエストにログイン情報が含まれるため、次回同じ認証情報を使用してサイトにアクセスすると、自動的にログインされるからです。
今のところ、ブラウザを閉じるしか解決策はありませんが、ユーザビリティの観点からは受け入れられません。
解決方法は?
ベーシック認証は、ログアウトを管理するようには設計されていません。ログアウトはできますが、完全自動ではありません。
その際、ログインを要求する通常の 401 と同じレルムと同じ URL フォルダレベルで '401 Unauthorized' を送信する必要があります。
次に間違った認証情報、例えば空白のユーザー名とパスワードを入力するように指示し、それに対して「ログアウトに成功しました」というページを送り返すようにする必要があります。間違った/空白の認証情報は、以前の正しい認証情報を上書きすることになります。
要するに、ログアウトスクリプトはログインスクリプトのロジックを反転させ、ユーザーが はありません。 は正しい認証情報を渡す。
問題は、「パスワードを入力しないでください」というやや不思議なパスワードボックスが、ユーザーの受け入れに応えられるかどうかです。パスワードを自動入力しようとするパスワードマネージャーも、ここでは邪魔になる可能性があります。
コメントを受けて追記:再ログインは少し違う問題です(明らかに2段階ログアウト/ログインを要求している場合は別)。再ログインリンクへの最初のアクセスを拒否(401)し、2回目のアクセスを受け入れる必要があります(おそらく異なるユーザー名/パスワードを持っています)。これを行うには、いくつかの方法があります。一つは、ログアウトリンクに現在のユーザ名を含め(例:/relogin?username)、認証情報がそのユーザ名に一致したときに拒否することです。
関連
-
[解決済み] Google ChromeでSPDYを無効にする方法
-
[解決済み] X-REQUEST-ID httpヘッダーとは何ですか?
-
[解決済み] HTTPヘッダーの大文字と小文字は区別されますか?
-
[解決済み] クロームでBasic認証の詳細をクリアする方法
-
[解決済み] なぜCSRF防止トークンをクッキーに入れるのが一般的なのですか?
-
[解決済み] ベーシック認証における「レルム」とは
-
[解決済み】cURLを使用してBasic HTTP認証を正しく定義する方法は?
-
[解決済み】HTTP基本認証 - 期待されるWebブラウザの体験とは?
-
[解決済み】URLのアンパサンドのエスケープについて
-
[解決済み】どのHTTPメソッドがどのCRUDメソッドと一致するか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
HTTPプロトコルの古典的な面接の質問と回答
-
[解決済み] X-REQUEST-ID httpヘッダーとは何ですか?
-
[解決済み] クロームでBasic認証の詳細をクリアする方法
-
[解決済み] ブラウザの「F5」や「Ctrl + F5」によるリフレッシュはどのようなリクエストを発生させるのでしょうか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み】HTTP 1.0 vs 1.1
-
[解決済み】CURL コマンドライン URL パラメータ
-
[解決済み] HTTP GETリクエストにcontent-typeヘッダーは必要ですか?
-
[解決済み] URLのプロトコルを継承するために、先頭のダブルスラッシュを使用することに何か不都合はありますか? 例:src="//domain.com"
-
[解決済み] PHPによるHTTP認証ログアウト