Есть ли способ, которым я могу запретить пользователю входить в систему с разных компьютеров одновременно?
спасибо
Проблема со всеми этими решениями на основе IP-адреса заключается в том, что если пользователь находится за прокси-сервером, который направляет свой запрос через несколько IP-адресов, это может привести к сбою, что означает, что пользователь не может оставаться в системе.
То, что вы можете сделать, это просто, когда любой пользователь входит в систему, дает им новый токен сеанса и истекает все предыдущие токены сеанса, принадлежащие одному и тому же пользователю.
Это потребует сохранения таблицы всех действительных токенов сеанса и с каким пользователем они связаны. Обратите внимание, что встроенная обработка сессий PHP вряд ли сможет сделать это без особых изменений.
Когда пользователь входит в систему, поместите свой IP-адрес в базу данных. Если их IP-адрес изменится, попросите их снова войти в систему.
Еще проще было бы сохранить их SessionID. Если это изменится, аннулируйте старый сеанс.
Вы не можете этого предотвратить. И не должно.
Вместо этого вы должны вручную выйти из системы всех, кто заходил раньше.
Просто отследите идентификатор сеанса в базе данных пользователей и закройте сеанс, если он не равен единице, сохраненному в базе данных после успешного входа.
Это заставит всех одновременных пользователей войти в систему постоянно и разрушить все свои усилия, чтобы использовать ваш сервис.
Вы можете попробовать сохранить IP-адрес пользователя в базе данных при входе в систему и очистить этот IP-адрес при выходе из системы (или вы выходите из системы). Если пользователь пытается войти в систему, но у них уже есть другой IP-адрес, хранящийся в базе данных, который может быть признаком того, что они входят в систему с двух разных машин …. не на 100% точнее, но могут сортировать работу
Я бы посоветовал отслеживать текущий (последний) IP-адрес, с которого вошел пользователь. Когда пользователь входит в систему, измените этот IP-адрес. Проверить текущий IP-адрес на последнюю IP-часть процедуры проверки подлинности; если все по-другому, выйдите из системы. Затем он может снова войти в систему, но это приведет к отключению входа в систему другого компьютера.