Самое лучшее, что вы можете сделать, - это записать (вероятно, в базе данных или в кеше в памяти), когда один пользователь вошел в систему с таймаутом, а затем обновлять тайм-аут по каждому запросу.Затем разрешите этому пользователю войти в систему, пока значение isLoggedIn является текущим (то есть не истекло).Вы также должны истечь тайм-аут при явном выходе из системы.
Теоретически, вы также можете истечь тайм-аут в событии sessionExpire, но мы заметили, что событие не особенно надежно, и мы хотели более короткий тайм-аут, следовательно, используя наш собственный сценарий тайм-аута.
Для более строгих ценных бумаг вы также можете спрятать идентификатор сеанса и отпечаток браузера, если хотите, наряду с тайм-аутом для борьбы с пользователями, которые встают между вашим тайм-аутоми время ожидания сеанса.
В долгосрочной перспективе, однако, на самом деле не существует 100% безопасного способа удержать пользователей от совместного использования учетных записей.Самое лучшее, что вы можете сделать, - это попытаться ограничить сценарий "дубликата пользователя", чтобы им было больно, чтобы один и тот же аккаунт входил в систему более одного раза одновременно.
НаконецКак примечание, динамический IP-адрес обычно не меняется так часто (маловероятно, что он изменится во время сеанса приложения), поэтому вы можете также использовать это нечетко.