人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでの質問です。
Basic認証を使用してサイトにアクセスをした際に
ブラウザを閉じたりするまでは特に再度認証の必要はありませんが
ブラウザを閉じることなくログアウトすることは可能でしょうか?
元々PHPのBasic認証自体がログインという概念ではないと思うのですが
何か付け加えることで再度認証をするように
出来る方法があれば教えていただければと思います。

●質問者: quocard
●カテゴリ:インターネット ウェブ制作
✍キーワード:BASIC認証 PHP アクセス サイト ブラウザ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●27ポイント

header('HTTP/1.0 401 Unauthorized');

サーバーからコード401を返せばクライアント側で認証関連のキャッシュをクリアするというような方法があるにはあるのですが、、、、

この仕様は強制ではないためブラウザによって対応が違い、特に広く使われているIEなどはコード401を受けてもキャッシュをクリアしてくれないのでブラウザを閉じるしか手はなかったりします。

JAVAScriptなどのクライアントサイドスクリプトで強制的にウィンドウを閉じるといった手法を併用していたりするのはそのためです。

◎質問者からの返答

試しに401を返してみましたがやはりダメなようです。

キャッシュをクリアすればいけるのかな・・・。

キャッシュのクリア方法がわからないので

探さないといけないですが・・・。


2 ● いのくに
●27ポイント

ユーザ名が不正だったりパスワードが間違っていた時にはサーバが再び401レスポンスコードを返す。このときは、クライアントは再びユーザに再びユーザ名とパスワードの入力をもとめる。

とあるので、

HTTP/1.1 401 Authorization Required

のようにヘッダーレスポンスで401エラーを返せばよろしいかと思います。

◎質問者からの返答

試してみました。

回答1でもありましたがこの方法ではダメなようです。


3 ● esecua
●26ポイント

ブラウザを閉じることなくログアウトすることは可能でしょうか?

できません。私の知っている限り。

ユーザ名が不正だったりパスワードが間違っていた時にはサーバが再び401レスポンスコードを返す。このときは、クライアントは再びユーザに再びユーザ名とパスワードの入力をもとめる。

このときって確かブラウザがまだ認証を完了していない時に有効なような気がします。一度認証が成立してしまうとブラウザを閉じるまではブラウザは情報を保持し続けるような気がするのですが。

基本認証でなければならない理由があるのでしょうか?もしなければPHPで認証を行えばログアウトもブラウザを閉じずに可能です。一番手っ取り早いPEARのAuthを使ってみてはいかがでしょうか。

http://pear.php.net/auth

間違っていたらごめんなさい。

◎質問者からの返答

ありがとうございます。

pearは知りませんでした。

こちらも参考にしてみたいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ