Имплементация одного сеанса в Symfony 3.3

В настоящее время я ищу способ реализовать одну сессию в Symfony 3.3, и я хочу, чтобы, если я войду из одного браузера, а затем из другого браузера с тем же пользователем, я хочу выйти из первой сессии.

Непростым способом было бы сохранить последний идентификатор сеанса в пользовательской сущности, а затем запрашивать его при каждом запросе, если идентификатор сеанса не тот же и более старый, то пользователь перенаправляется на маршрут выхода из системы.

Мне было интересно, если кто-нибудь знает более простой способ реализации этого, который не может быть в документации Symfony.

Благодарю.

-2

Решение

Я решил это с помощью кэша Redis вместо этого, я сохранил идентификатор пользователя в качестве ключа и идентификатор сеанса в качестве данных внутри ключа. Затем при каждом запросе я искал в redis, был ли ключ для текущего пользователя. Если нет, то я создал ключ для этого пользователя с идентификатором сеанса в качестве данных. Если да, то я проверил, был ли идентификатор сессии внутри ключа таким же, как текущий идентификатор сессии. Если это было то же самое, то я просто продолжил в обычном режиме, если нет, я удалил старый сеанс из обработчика сеанса и поместил новый сеанс в ключ.

Я также использую redis в качестве обработчика сессии, поэтому я просто вызвал destroy для старого идентификатора сессии.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector