Я работаю над приложением, для которого требуется только один активный сеанс для одного пользователя, независимо от устройства, в которое он входит. Я еще не кодировал это, но я хочу знать, правильно ли я направляюсьНаправление ИЛИ есть ли лучший способ справиться с этим
Это приложение всегда будет подключено к Интернету, поэтому нет автономного режима, и, следовательно, вот мой подход к обработке случая одного сеанса
При вызове службы входа из DeviceA сервер будет поддерживать идентификатор сеанса.
Если пользователь выполняет вход в систему с любого другого устройства (DeviceB), то сервер проверит,это от DeviceA с DeviceA_sessionID?и если нет, он отправит 400 BadRequest response
на устройство B с сообщением «Пожалуйста, выйдите со всех устройств, на которых вы вошли, чтобы использовать приложение»
SessionId на сервере может бытьдействителен в течение 2 дней или недели.
Основная проблема, которую я пытаюсь решить, заключается в том, что я не хочу иметь никаких зависимых от устройства зависимостей, потому что vendorId или любой Id можетизменить, когда мы делаем сброс к заводским настройкам или переустанавливаем приложение или приобретаем новое устройство.
На шаге 2 я думаю, что будет хорошей идеей просто прекратить сеанс DeviceA и разрешить вход в DeviceB сновый идентификатор сеанса, а затем показать сообщение на DeviceA, что ваш сеанс был прекращен?Или просто подождать, пока истечет время сеанса?
С помощью sessionIds на сервере я могу убедиться, что на сервере есть логика для определения того, что одновременно активен только один сеанс устройства на пользователя и любой другойсеансы просто прекращаются.
Кроме того, пользователи меняют свои устройства, поэтому я предполагаю, что с помощью sessionId пользователь все еще может войти в систему и создать новый sessionId для своего нового устройства, а сервер может завершить старые.
Дайте мне знать, если это правильный подход или есть лучший способ справиться с этим делом.