Когда пользователь подключается к приложению, слушатель обнаруживает событие подключения и обновляет поле last_login_at
для пользователя.
Проблема возникает, когда пользователь хочет выйти из системы.
При отключении всегда вызывается метод слушателя onSecurityAuthenticationSuccess
.
Проблема после отключения мы больше не можем восстановить пользователя (в сеансе)
Что я хотел бы - это иметь возможность записывать дату последнего соединения в базе данных, которая называется методом onSecurityAuthenticationSuccess
, только при входе в систему, а не при входе в систему и выходе из системы.
Кроме того, у меня есть поле is_in_line
в базе данных, и я хотел бы отключиться , Я могу обнаружить событие «отключение» и обновить это поле. Как я могу это сделать?
Вот мой код для перечисления
public function onSecurityAuthenticationSuccess (AuthenticationEvent $ event) {
$ user = $ event-> getAuthenticationToken () -> getUser ();
if ($ user) {
// dd ($ user);
$ user-> setLastLoginAt (new \ Datetime ('now'));
$ this-> em-> persist ($ user);
$ this-> em-> flush ();
}
}