Symfony 2: Как установить время жизни сеанса при входе в систему?
У меня есть пользовательская форма входа для моего приложения Symfony 2. В этой форме у меня есть поле выбора с несколькими опциями, чтобы установить максимальное время простоя сеанса входа. Я хочу иметь возможность установить время жизни сеанса при входе в систему. К сожалению, loginaction хранится в FOSUserBundle, который не может быть изменен из-за будущих обновлений пакета.
Вот что я выяснил до сих пор, поправьте меня, если я ошибаюсь:
Во-первых, время жизни в symfony может быть уничтожено через некоторое время. время, как описано здесь .
Во-вторых, я должен быть в состоянии поймать / перехватить действие входа / проверки, чтобы установить параметр в параметре.в формате YML.
Затем этот параметр можно использовать в прослушивателе, чтобы проверить, не превышен ли maxlifetime.
Итак, мой вопрос разделен на два других вопроса:
- как перехватить / перехватить действие входа / проверку?
- Есть ли способ создать прослушиватель, который проверяет время простоя, пока ничего не происходит (или может быть проверка на следующая просьба)?
Заранее спасибо
1 ответ:
Я предполагаю,
Вам нужен обработчик успешного входа в систему. Прочитайте следующее, Чтобы понять, что
Вы также можете написать EventListener для событий запроса контроллера / ядра, где вы можете сравнить время простоя пользователя.
Насколько мне известно, это не очень хорошая идея. чтобы добавить значения параметров для такого рода требований.
Если вам нужно уничтожить сеанс пользователя, почему бы не установить время входа в систему в обработчике успешности аутентификации (можно сохранить его в сеансе или последнем входе сущности пользователя), а в прослушивателе контроллера вы можете сравнить длину входа и сбросить сеанс пользователей?