0
0
会員ページでベーシック認証を設定する方法
ベーシック認証をかける意図は、
会員様以外の人のログインを阻止するためです。
つまり登録してもらった会員様はスムーズにログイン、登録していない非会員はベーシック認証、なるべくこのようにしたいのです。
かなり長時間ログインしてないとベーシック認証が発動する状態にする、
よく会員サイトを見ている会員様はベーシック認証が発動しない。
以前のプログラマーの方は、設定をしてくれていたみたいで、何か方法があるのではないかとは思っております。
私自身そのような設定をした経験がないので、ご教授頂けますと大変有り難いです。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
#1
総合スコア145930
投稿2024/02/08 14:22
実装したいものは、本当にBASIC認証で間違いないでしょうか?
BASIC認証は、ブラウザに組み付けのID/パスワード画面がポップアップして出てくるもので、正直言ってエンドユーザーに見せるような用途で使うものではないです。
(ブラウザのHTML内にID/パスワードの入力を行うものは、BASIC認証ではありません)
#3
総合スコア2381
投稿2024/02/08 20:53
こちらにも、全く同じ内容の質問がされていますが、あなたの質問でしょうか。
https://ja.stackoverflow.com/questions/98572/basic%e8%aa%8d%e8%a8%bc%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95%e3%82%92%e6%95%99%e3%81%88%e3%81%a6%e3%81%8f%e3%81%a0%e3%81%95%e3%81%84
teratailでは、マルチポスト※の推奨はしていません。
※「マルチポスト」とは、同じ内容の文章を複数のQ&Aサイトや掲示板などへ投稿することです。
https://teratail.com/help#posted-otherservice
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア969
投稿2024/02/09 04:06
HTTP Authというプラグインを調べてみました。
https://under-blog.com/https-auth
ちなみに、Basic認証は一度ログインすると、ブラウザのキャッシュが残って自動でログインされてしまうので、
ブラウザのキャッシュが残っていて自動ログイン出来ていたのではないでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
総合スコア85766
投稿2024/02/09 09:57
編集2024/02/09 10:05かなり長時間ログインしてないとベーシック認証が発動する状態にする、
よく会員サイトを見ている会員様はベーシック認証が発動しない。
が、希望する動作状態の説明ということなのでしょうか?以下その前提で回答します。
ApacheなどのHTTPサーバープログラムの機能で、BASIC認証をしている場合も、PHPプログラムで独自にWWW-Authenticate
ヘッダと401レスポンスを返している場合も、ブラウザ側では、一度BASIC認証ダイアログで入力したiDとパスワードは、(意図的にクリアしないと)ブラウザを終了させるまで10時間でも保持しますし、ブラウザを一旦終了させて再度ブラウザを起動してアクセスすると10秒後であっても再度BASIC認証ダイアログが出ます。
ダイアログが出るかどうかは、前回からの時間の長さは関係なくて、ブラウザを終了させたかどうかだけが影響します。
この仕様で良いのかどうか?
駄目なら、具体的にどうしたいのか?
ブラウザがずっと起動しっぱなしの場合でも、半年経ったなど、ある条件になったら、再度BASIC認証ダイアログを出したいと言うことなら、正しい認証情報が送られても、WWW-Authenticate
ヘッダと401レスポンスを返せば、再度BASIC認証ダイアログが出ることになるかと思います。やったこと無いですが、多分OK。
逆に、一旦ブラウザを終了&再起動した場合でも、ある条件を満たせば、BASIC認証ダイアログを出さずにアクセスさせることが出来るかというと、この場合は、認証情報がサーバーに来ないので、その人が誰か判別できず、無理ですね。
あなたが「前回からの期間の長さによってダイアログが出るか出ないか異なっていた」と思っているのは、実は期間の長さでなくブラウザが起動したままかどうかの違いだったという記憶違いでは無いでしょうか。
追記:
この場合は、認証情報がサーバーに来ないので、その人が誰か判別できず、無理ですね。
Cookieを使えば可能と言えば可能ですが、そこまでするならBASIC認証でなく普通にログインする仕組みにするだろうから、その選択をする人はいないでしょうね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#6
総合スコア4443
投稿2024/02/12 08:06
編集2024/02/12 08:06ベーシック認証をかける意図は、
会員様以外の人のログインを阻止するためです。つまり登録してもらった会員様はスムーズにログイン、登録していない非会員はベーシック認証、なるべくこのようにしたいのです。
たぶん、ここで「ベーシック認証が発動する」と言っているのはHTTP認証の特定の方式 (HTTP Basic Authentication) を利用することを指しているのではなく、単に「認証ダイアログとして利用できるなんらかのユーザインタフェイスが表示されること」を指しているのだと思います。
そう考えないと、この文章は理解できません。
問いへの答えですが、そのようなことをするためにはウェブアプリケーションがそのような動作をするようにするなどある程度の開発が必要であり、ウェブサーバソフトウェアをちょっと設定するだけでできるものではありません。「以前のプログラマーの方」と同等以上の知識を持ったかたに開発を依頼してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。