У меня есть защищенная область администратора под /admin/
, Пользователи должны войти в систему через HTTP basic auth
(http_basic
установлен в true
в security.yml)
,
Моя цель для конкретных действий в конкретном контроллере — повторно запросить у пользователя имя пользователя / пароль. Я думал, что это будет просто, но согласно моим исследованиям, похоже, что это не так.
Я пытался unset
и то и другое $_SERVER['PHP_AUTH_USER']
а также $_SERVER['PHP_AUTH_PW']
но, похоже, не имеет никакого эффекта. Я тоже пытался изменить header
установить 401
код состояния, но это тоже не влияет.
Как это может быть достигнуто?
Прежде всего, базовая аутентификация HTTP НЕ была разработана для поддержки выхода из системы.
Это означает, что вы можете не гарантировать это в каждом браузере; даже с помощью трюка 401 и перенаправления [email protected], чтобы сделать недействительными учетные данные.
Увидеть этот ответ.
Так что это плохая привычка использовать его, когда вам нужно выйти из системы.
Вы должен используйте пользовательскую аутентификацию, предоставляемую FOSUserBundle, если вы хотите повторно запросить учетные данные пользователя. И это довольно просто & безопасный.
Других решений пока нет …