Программно выйти из системы текущего пользователя

Я пытаюсь программно выйти из системы текущего пользователя из слушателя. Я прочитал здесь, что

$this->get('security.context')->setToken(null);
$this->get('request')->getSession()->invalidate();

делает трюк, но тогда я не могу позвонить $this->container->get('security.context')->getToken()->getUser(); больше как токен сейчас NULL,

Как я могу выйти из системы, но при этом позволить приложению нормально работать? У меня есть вызовы getUser() в моих функциях контроллера, поэтому я должен установить токен на что-то, соответствующее не прошедшему проверку подлинности пользователю. Как я могу это сделать?

Кроме того, если есть способ программно начать новый сеанс и установить флэш-сообщение, информирующее пользователя, что он вышел из системы, это было бы здорово.

1 ответ

Пытаться

$anonToken = new AnonymousToken('theTokensKey', 'anon.', array());
$this->get('security.context')->setToken($anonToken);

Первый параметр - это ключ токена (т. е. "50cdf89882454").

Другие вопросы по тегам