Не могу программно закрыть сессию пользователю. Это нужно если пароль или "блокировка" были изменены.
Пробовал и так
$this->tokenStorage->setToken(null);
(не происходит ниче)
и так
$request->getSession()->invalidate(1);
(Пишет, что нельзя изменить активную сессию)
и даже так
SecurityController::logout();
(выбрасывает исключение)
Пробовал так же перенести хранилище сессий в базу и удалять их оттуда. Просто появляются новые.
Я понимаю, что похоже, проверяю где-то между "успешно проверено" и записью сессий и он просто записывает новые. Куда же правильно засунуть свои эти проверки так, чтобы я мог делать программный логаут?
Flying, у симфони есть компонент, security. В его комплекте поставляется авторизация. Я естественно её закрутил в свой проект. Вот только теперь не знаю, как "выкинуть" пользователя, если я его, например, заблокировал. Как не пустить при авторизации через форму логина - с этим справился, здесь было легко.
А вот теперь как бы закончить сессию "принудительно" - вообще непонятно.
Ваня Самойлов, О том как принудительно сделать logout пользователю прямо написано в документации Symfony. Вам необходимо определить route для logout в конфигурации и просто сделать redirect на этот route.