如何使SF2/FOSUserBundle在特定操作时再次询问用户密码


How to make SF2/FOSUserBundle ask user for password again upon specific actions?

我在/admin/下有这个安全的管理区域。用户需要通过HTTP basic auth登录(http_basicsecurity.yml)中设置为true

我的目标是,对于特定控制器中的特定操作,重新询问用户的用户名/密码。我原以为这会很简单,但根据我的研究,事实并非如此。

我试过unset$_SERVER['PHP_AUTH_USER']$_SERVER['PHP_AUTH_PW'],但似乎没有效果。我还尝试更改header以设置401状态代码,但这也没有效果。

这怎么可能实现?

首先,HTTP基本身份验证并不是为了支持注销而设计的

这意味着您可以而不是在每个浏览器上保证它;即使使用401技巧,也不使用重定向user@mysite.com以使凭据无效。

看看这个答案。

因此,当您需要注销用户时,使用它是一个坏习惯。


如果您想重新询问用户的凭据,则使用FOSUserBundle提供的自定义身份验证。它非常简单&保护