Symfony

Keep Alive: поддержание динамически открытой сессии пользователя на Symfony

Вы используете Symfony PHP Framework, и вам нужно, чтобы сессия пользователя оставалась открытой дольше, когда он выполняет длительную обработку в браузере? У меня есть решение для вас!

В контроллере создайте действие “keepAlive”:

/** * @Route("keepAlive", name="keepAlive") * @param Request $request * @return JsonResponse */ public function keepAlive(Request $request) { $this->get('session')->migrate(); /// Миграция продлевает сессию return JsonResponse::fromJsonString('{"result":"OK"}', 200); }
Code language: PHP (php)

Вызов метода migrate() на сессии продлит время жизни текущей сессии пользователя.

Затем браузер может динамически запросить ваше приложение Symfony продлить время жизни сессии, когда это необходимо.

$.ajax({ url: '/keepAlive', type: "GET", });
Code language: JavaScript (javascript)

Ajax-вызов действия keepAlive может быть выполнен в любое время в зависимости от ваших потребностей.
В моем случае я делал это, когда пользователь завершал часть обработки, которую он выполнял. Таким образом, я не продлевал сессию, если пользователь больше не был активен.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *