###前提・実現したいこと
PHPで、ダイジェスト認証を行うAPIを作っています。
APIをブラウザから利用する際、IDとパスワード聞かれ、正しく入力するとファイルがダウンロードできる仕組みです。
###発生している問題
ID、パスワードを間違えると、Chromeの場合は再度確認されますが、
IEの場合は、どうも前回入力した、間違えたID、パスワードを送っているようで、
ブラウザを閉じるまでAPIの認証に通らなくなってしまいます。
###試したこと
以下のページの情報を元に
https://github.com/jhipster/generator-jhipster/issues/777
以下のようにキャッシュ関連のヘッダーを付けてダイジェスト認証を求めるようにしましたが、やはりIEのではブラウザを閉じるまでIDとパスワードの再確認はありません。
PHP
1$this->response->statusCode ( 401 ); // Unauthorized 2$this->response->header ( 'WWW-Authenticate: Digest realm="XXX",qop="auth",nonce="' . uniqid () . '",opaque="YYY"' ); 3$this->response->header("Expires","Thu, 01 Dec 1994 16:00:00 GMT"); 4$this->response->header("Last-Modified", gmdate("D, d M Y H:i:s"). " GMT"); 5$this->response->header("Cache-Control","no-cache;no-store; must-revalidate;post-check=0; pre-check=0",false); 6$this->response->header("Pragma","no-cache"); 7 8throw new UnauthorizedException (); 9return;
どなたか、同じような問題が起きたり、解決できた等の情報があればお助け頂けるとうれしいです(>人<)
###追記
どうやら"no-cache"の設定は効いているようです。
その為ブラウザを閉じると再度IDとパスワードを聞かれていたと思われる。
問題は、IEはブラウザを閉じるまでは覚えている点。
なお、Chromeの場合も正しく認証されれば記憶されるが、別の「ID・パスワード」が異なるファイルにアクセスしようとすると認証に失敗し、そのタイミングで再度ID・パスワードの入力を求められる。<-IEはブラウザを閉じないとアクセスできない。
###解決したい事
IEで認証に失敗した場合に、再度ID・パスワードの入力が出来るようにしたい。
あなたの回答
tips
プレビュー