Выход из системы в Symfony2 обрабатывается так называемым обработчиком выхода из системы, который является просто списком, который выполняется, когда шаблон URL соответствует конфигурации безопасности, т.е.если URL, скажем, /logout
, то этот слушатель выполняется.Есть два встроенных обработчика выхода из системы:
- CookieClearingLogoutHandler , который просто очищает все куки.
- SessionLogoutHandler , который делает недействительным сеанс
Все, что вам нужно сделать, это то же самое, что и последний.Вы можете добиться этого, просто позвонив по номеру:
Legacy Symfony
$this->get('security.context')->setToken(null);
$this->get('request')->getSession()->invalidate();
Symfony 2.6
$this->get('security.token_storage')->setToken(null);
$this->get('request')->getSession()->invalidate();
Warning
Это будет работать только тогда, когда запомнить меня функциональность отключена.В другом случае пользователь снова войдет в систему с помощью cookie-файла Запомнить меня со следующим запросом.
Пожалуйста, рассмотрите расширенное решение, если вы используете функцию запомнить меня: https://stackoverflow.com/a/28828377/1056679