Программно выйти из системы текущего пользователя
Я пытаюсь программно выйти из системы текущего пользователя из слушателя. Я прочитал здесь, что
$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").