При разработке многопользовательского web-приложение, понадобилось ограничить количество активных сессий для одного пользователя. В этой статье хочу поделиться с Вами свои решением.
Контроль сессий актуален для большого количества проектов. В нашем приложение необходимо было реализовать ограничение количества активных сессий для одного пользователя. При входе в систему (login) для пользователя создается активная сессия. При входе этого же пользователя с другого устройства необходимо не открывать новую сессию, а проинформировать пользователя об уже существующей активной сессии и предложить ему 2 варианта:
- закрыть прошлую сессию и открыть новую
- не закрывать старую сессию и не открывать новую сессию
Так же при закрытие старой сессии необходимо отправить уведомление администратору об этом событие.
И нужно учесть 2 возможности инвалидации сессии:
- разлогин пользователя (т.е. нажатие пользователем кнопки logout)
- автоматический разлогин после 30 минут бездействия