2

の下に、この保護された管理領域があり/admin/ます。ユーザーはHTTP basic auth(をin にhttp_basic設定してログインする必要があります。truesecurity.yml)

私の目標は、特定のコントローラーでの特定のアクションについて、ユーザーにユーザー名/パスワードを再要求することです。これは簡単だと思っていましたが、私の調査によると、そうではないようです。

unset私は両方$_SERVER['PHP_AUTH_USER']を試しまし$_SERVER['PHP_AUTH_PW']たが、効果がないようです。headerステータスコードを設定するように変更しようとしまし401たが、これも効果がありません。

これはどのように達成できますか?

4

1 に答える 1

0

まず、HTTP 基本認証はログアウトをサポートするようには設計されていません。

つまり、すべてのブラウザで保証できるわけではありません。401 トリックを使用したり、リダイレクト user@mysite.com を使用して資格情報を無効にしたりしても。

この回答を参照してください。

したがって、ユーザーをログアウトする必要があるときにこれを使用するのは悪い習慣です。


ユーザーの資格情報を再確認する場合は、FOSUserBundle が提供するカスタム認証を使用する必要があります。そして、それは非常にシンプルで安全です。

于 2015-03-24T18:39:08.480 に答える