Как заставить SF2 / FOSUserBundle снова запрашивать пароль у пользователя при определенных действиях?

У меня есть защищенная область администратора под /admin/, Пользователи должны войти в систему через HTTP basic auth (http_basic установлен в true в security.yml),

Моя цель для конкретных действий в конкретном контроллере — повторно запросить у пользователя имя пользователя / пароль. Я думал, что это будет просто, но согласно моим исследованиям, похоже, что это не так.

Я пытался unset и то и другое $_SERVER['PHP_AUTH_USER'] а также $_SERVER['PHP_AUTH_PW'] но, похоже, не имеет никакого эффекта. Я тоже пытался изменить header установить 401 код состояния, но это тоже не влияет.

Как это может быть достигнуто?

2

Решение

Прежде всего, базовая аутентификация HTTP НЕ была разработана для поддержки выхода из системы.

Это означает, что вы можете не гарантировать это в каждом браузере; даже с помощью трюка 401 и перенаправления [email protected], чтобы сделать недействительными учетные данные.

Увидеть этот ответ.

Так что это плохая привычка использовать его, когда вам нужно выйти из системы.


Вы должен используйте пользовательскую аутентификацию, предоставляемую FOSUserBundle, если вы хотите повторно запросить учетные данные пользователя. И это довольно просто & безопасный.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]